本文转自:http://www.cnblogs.com/fnng/p/3157639.html
《selenium 基础之java实现》
=========================================================================
在拾功能自动化距离上次selenium的学习刚好一年左右的时光,过去的一年时光里,一直在围绕 性能测试 学东西,一方面是自己学到性能调优是个瓶颈,另一方面专职性能的需求量不大(至少在我跳槽时是这种感受),惭愧,再次的跳槽不能如愿的去做性能。
新工作的氛围也算喜欢,就工作本身来说没什么挑战,因为产品部分用python开发,所以,浅学了一下。
一直在摸索能否将目前的产品自动化起来,对自己也是一种挑战和提高。放弃了久之不用的java ,改换 python 。之前的系列也只算个入门,后面就接着摸索下去。
下面会用 selenium + webdriver + python 实现
关系:
selenium 自动化测试工具 :selnium 1.0 包括:selenium RC 、selenium IDE 、selenium GRID、selenium CORE
webdriver google的自动化测试框架(或者说是套规范API)
webdriver 与seleinum 各有优点,两个团队都认为合并会更牛逼,于是:
selenium 2.0 = selenium RC + webdriver
selenium 可以使用多种语言实现:C# , java , python , ruby ....
环境搭建:
----------------轻松自动化系列目录-----------
开始我们的第一个脚本:
- 熟悉selenium python 代码样式
- time.sleep() 添加休眠时间
- print 打印输出信息
- 打印URL
- 将浏览器最大化
- 设置浏览器固定宽、高
- 操控浏览器前进、后退
* 简单对象定位:
- · id
- · name
- · class name
- · link text
- · partial link text
- · tag name
- · xpath
- · css selector
- 定位一组元素
- 层级定位
操作对象:
- · click 点击对象
- · send_keys 在对象上模拟按键输入
- · clear 清除对象的内容,如果可以的话
WebElement 另一些常用方法:
- · text 获取该元素的文本
- · submit 提交表单
- · get_attribute 获得属性值
多层框架或窗口的定位:
- switch_to_frame()
- switch_to_window()
智能等待:
- implicitly_wait()
调用js方法
- execute_script(script, *args)
- 上传文件
- 处理下拉框
- switch_to_alert()
- accept()
- 控制滚动条到底部
- l 键盘按键用法
- l 键盘组合键用法
- l send_keys() 输入中文运行报错问题
- driver.get_cookies() 获得cookie信息
- add_cookie(cookie_dict) 向cookie添加会话信息
- delete_cookie(name) 删除特定(部分)的cookie
- delete_all_cookies() 删除所有cookie
-
webdriver 原理分析
- context_click() 右击
- double_click() 双击
- drag_and_drop() 拖动
- 浅析unittest测试框架