阅在线 AIP 文档:
http://selenium.googlecode.com/git/docs/api/py/index.html

目录
一、selenium+python 环境搭建................................................................................................6
1.1 selenium 介绍............................................................................................................... 6
1.2 准备工作......................................................................................................................6
1.3 安装步骤......................................................................................................................7
1.4 安装chrome driver......................................................................................................8
1.5 安装 IE driver................................................................................9
二、开始第一个脚本.................................................................................................................9
2.1 为什么选python..........................................................................................................9
2.2 第一个脚本..................................................................................................................9
2.3 脚本解析....................................................................................................................10
三、元素的定位.......................................................................................................................11
3.1 id 和 name 定位.......................................................................................................12
3.2 tagname 和 class name定位...................................................................................12
3.3 CSS 定位..................................................................................................................13
3.4 XPath 定位...............................................................................................................14
3.5 link 定位...................................................................................................................15
3.6 Partial link text 定位................................................................................................15
四、添加等待时间...................................................................................................................15
4.1、添加休眠..................................................................................................................15
4.2、智能等待..................................................................................................................16
五、打印信息...........................................................................................................................17
5.1、打印 tile....................................................................................................................17
5.2、打印 URL.................................................................................................................17
六、浏览器的操作...................................................................................................................18
6.1、浏览器最大化..........................................................................................................18
6.2、设置浏览器宽、高..................................................................................................19
七、操作浏览器的前进、后退...............................................................................................19
八、操作测试对象...................................................................................................................20
8.1、鼠标点击与键盘输入..............................................................................................21
8.2、submit 提交表单......................................................................................................21
8.3、text获取元素文本...................................................................................................22
8.4、get_attribute 获得属性值........................................................................................ 22
九、键盘事件...........................................................................................................................23
9.1、键盘按键用法..........................................................................................................23
9.2、键盘组合键用法......................................................................................................24
9.3、中文乱码问题..........................................................................................................25
十、鼠标事件...........................................................................................................................25
10.1、鼠标右键................................................................................................................26
博客园 — 虫师
http://fnng.cnblogs.com 4
10.2、鼠标双击................................................................................................................27
10.3、鼠标拖放................................................................................................................27
十一、定位一组元素...............................................................................................................28
11.1、第一种定位方法....................................................................................................30
11.2、第二种定位方法....................................................................................................31
11.3、去掉最后一个勾选................................................................................................31
十二、多层框架/窗口定位......................................................................................................32
12.1、多层框架定位........................................................................................................32
12.2、多层窗口定位........................................................................................................35
十三、层级定位.......................................................................................................................35
十四、上传文件操作...............................................................................................................38
14.1、操作文件上传例子................................................................................................39
14.2、139 邮箱上传.........................................................................................................40
十五、下拉框处理...................................................................................................................41
15.1、操作下拉框例子....................................................................................................41
15.2、百度搜索设置下拉框操作....................................................................................43
十六、alert、confirm、prompt 的处理..................................................................................44
十七、对话框的处理...............................................................................................................45
17.1、div 对话框的处理..................................................................................................45
17.2、一般对话框的处理................................................................................................48
十八、调用 js...........................................................................................................................49
18.1、通过 js 隐藏元素...................................................................................................49
18.2、通过 js 使输入框标红...........................................................................................51
十九、控制浏览器滚动条.......................................................................................................52
19.1、场景一....................................................................................................................53
19.2、场景二....................................................................................................................53
二十、cookie 处理...................................................................................................................54
20.1、打印 cookie 信息...................................................................................................54
20.2、对cookie 操作.......................................................................................................55
20.3、博客园登陆分析cookie........................................................................................56
二十一、webdriver 原理解析................................................................................................. 57
二十二、引入 unittest 框架.....................................................................................................65
二十三、unittest 单元测试框架解析......................................................................................70
二十四、批量执行测试集.......................................................................................................75
二十五、异常捕捉与错误截图...............................................................................................77
二十六、生成测试报告(HTMLTestRunner).......................................................................... 80
二十七、数据驱动测试...........................................................................................................83
27.1、读取文件参数化....................................................................................................83
27.2、用户名密码的参数化(读取文件)................................................................... 85
27.3、用户名的参数化(字典)....................................................................................86
27.4、用户名密码的参数化(函数)........................................................................... 87
二十八、测试套件...................................................................................................................89
28.1、测试套件实例........................................................................................................89
28.2、整合 HTMLTestRunner 测试报告........................................................................93
博客园 — 虫师
http://fnng.cnblogs.com 5
28.3、更易读的报告........................................................................................................95
二十九、结构改进...................................................................................................................96
29.1、all_tests.py 移出来................................................................................................96
29.2、__init__.py 文件解析............................................................................................97
29.3、调用多级目录的用例............................................................................................98
29.4、改进用例的读取....................................................................................................99
29.5、进一步分离用例列表..........................................................................................101
三十、UliPad--python 开发利器...........................................................................................103

一、selenium+python  环境搭建
1.1selenium  介绍
selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,
相因为它相比 QTP有诸多有点:
* 免费,也不用再为破解 QTP 而大伤脑筋
* 小巧,对于不同的语言它只是一个包而已,而 QTP 需要下载安装1个多 G 的程序。
* 这也是最重要的一点,不管你以前更熟悉 C、 java、ruby、python、或都是 C# ,你都
可以通过 selenium 完成自动化测试,而 QTP 只支持 VBS
* 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome
* 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分
发机的功能。
1.2  准备工作
搭建平台 windows
准备工具如下:
-------------------------------------------------------------
下载 python
http://python.org/getit/
下载 setuptools 【python的基础包工具】
http://pypi.python.org/pypi/setuptools
下载 pip 【python 的安装包管理工具】
https://pypi.python.org/pypi/pip
-------------------------------------------------------------
因为版本都在更新,pyhton 选择2.7.xx ,setuptools 选择你平台对应的版本,pip 不要
担心 tar.gz 在 windows 下一样可用。

1.3  安装步骤
一、python 的安装 ,这个不解释,exe 文件运行安装即可,既然你选择 python,相信
你是熟悉 python 的,我安装目录 C:\Python27
二、setuptools 的安装也非常简单,同样是 exe 文件,默认会找到 python 的安装路径,
将安装到 C:\Python27\Lib\site-packages 目录下
三、安装 pip ,我默认解压在了 C:\pip-1.3.1 目录下
四、打开命令提示符(开始---cmd 回车)进入 C:\pip-1.3.1目录下输入:
C:\pip-1.3.1 >python setup.pyinstall
(如果提示 python 不是内部或外部命令!别急,去配置一下环境变量吧)
修改我的电脑->属性->高级->环境变量->系统变量中的 PATH 为:
变量名:PATH
变量值:;C:\Python27
五、再切换到 C:\Python27\Scripts 目录下输入:
C:\Python27\Scripts> easy_install pip
六、安装 selenium,(下载地址: https://pypi.python.org/pypi/selenium )
如果是联网状态的话,可以直接在 C:\Python27\Scripts 下输入命令安装:
C:\Python27\Scripts> pip install -U selenium
如果没联网(这个一般不太可能),下载 selenium 2.33.0 (目前的最新版本)
并解压把整个目录放到 C:\Python27\Lib\site-packages 目录下。
注意:七、八两步可以暂不进行,如果你要学习第二十一章 webdriver 原理的时候再进行
也不迟。
==============
七、下载并安装
(http://www.java.com/zh_CN/download/chrome.jsp?locale=zh_CN),什么!?你没整过
java 虚拟机,百度一下 java 环境搭建吧。
八、下载 selenium 的服务端(https://code.google.com/p/selenium/)在页面的左
侧列表中找到
selenium-server-standalone-XXX.jar
对!就是这个东西,把它下载下来并解压;
在 selenium-server-standalone-xxx.jar 目 录 下 使 用 命 令 java -jar
selenium-server-standalone-xxx.jar 启动(如果打不开,查看是否端口被占用:netstat
-aon|findstr 4444)。
==============
1.4  安装 chrome driver
chrome driver 的下载地址在这里。
1. 下载解压,你会得到一个 chromedriver.exe 文件(我点开,运行提示 started no prot
9515 ,这是干嘛的?端口9515被占了?中间折腾了半天),后来才知道需要把这家伙放到
chrome 的安装目录下...\Google\Chrome\Application\ ,然后设置 path 环境变量,把
chrome 的安装目录(我的:C:\Program Files\Google\Chrome\Application),然后再调用
运行:
# coding = utf-8
fromselenium import webdriver
driver =webdriver.Chrome()
driver.get('http://radar.kuaibo.com')
print driver.title
driver.quit()
报错提示:
Chrome version must be >= 27.0.1453.0\n (Driver info:
chromedriver=2.0,platform=Windows NT 5.1 SP3 x86)
说我 chrome 的版本没有大于27.0.1453.0 ,这个好办,更新到最新版本即可。
博客园 — 虫师
http://fnng.cnblogs.com 9
1.5  安装IE driver
在新版本的 webdriver中,只有安装了 ie driver使用 ie 进行测试工作。
ie driver 的下载地址在这里,记得根据自己机器的操作系统版本来下载相应的 driver。
暂时还没尝试,应该和 chrome 的安装方式类似。
记得配置 IE 的保护模式
如果要使用 webdriver启动 IE 的话,那么就需要配置 IE 的保护模式了。
把 IE 里的保护模式都选上或都勾掉就可以了。
二、开始第一个脚本
2.1  为什么选 python
之前的菜鸟系列是基于 java 的,一年没学其实也忘的差不多了,目前所测的产品
部分也是 python 写的,而且团队也在推广 python ,其实就测试人员来说,python 也
相当受欢迎。易学,易用。翻翻各测试招聘,python 出现的概率也颇高。(个人原因)
最重要的还是 python 简单易学,应用也相对广泛;是测试人员学习编程的不二之选。
下面看看 python 穿上 seleniumwebdriver 是多么的性感:
2.2  第一个脚本
#coding = utf-8
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
browser.find_element_by_id("kw" ).send_keys( "selenium")
browser.find_element_by_id("su").click()
博客园 — 虫师
http://fnng.cnblogs.com 10
browser.quit()
2.3  脚本解析
# coding = utf-8
可加可不加,开发人员喜欢加一下,防止乱码嘛。
from selenium import webdriver
要想使用 selenium 的 webdriver里的函数,首先把包导进来嘛
browser = webdriver.Firefox()
我们需要操控哪个浏览器呢?Firefox ,当然也可以换成 Ie 或 Chrome 。browser 可以
随便取,但后面要用它操纵各种函数执行。
browser.find_element_by_id("kw").send_keys("selenium")
一个控件有若干属性 id 、name、(也可以用其它方式定位),百度输入框的 id 叫 kw ,
我要在输入框里输入 selenium 。多自然语言呀!
browser.find_element_by_id("su").click()
搜索的按钮的 id 叫 su ,我需要点一下按钮( click() )。
browser.quit()
退出并关闭窗口的每一个相关的驱动程序,有洁癖用这个。
browser.close()
关闭当前窗口 ,用哪个看你的需求了。
博客园 — 虫师
http://fnng.cnblogs.com 11
三、元素的定位
对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。
一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身
份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。
那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。
webdriver 提供了一系列的对象定位方法,常用的有以下几种
 · id
 · name
 · class name
 · link text
 · partial link text
 · tag name
 · xpath
 · css selector
我们可以看到,一个百度的输入框,可以用这么用种方式去定位。
<input
博客园 — 虫师
http://fnng.cnblogs.com 103
return alltestnames
在 all_tests.py 中进行调用:
#coding=utf-8
....
import allcase_list #调用数组文件
#获取数组方法
alltestnames = allcase_list.caselist()
...
suite =unittest.TestSuite()
if __name__== '__main__':
fortest inalltestnames:
suite.addTest(unittest.defaultTestLoader.loadTestsFromName(test))
.....
现在现在优雅多了,把需要的执行的用例往 allcase_list.py 的数组是罗列就行了。
用例的调整,all_tests.py 文件不需要做任何的修改。
最后再回顾一下我们有目前测试的目录结构:
/selenium_use_case/test_case/untie/test_baidu.py -----一级目录测试用例
/unite/test_baidu.py
/unite/sogou/test_sogou.py ----二级目录测试用例目录
/unite/sogou/__init__.py
/unite/sogou/...
/unite/__init__.py
/unite/...
/all_tests.py ----调用所有脚本执行
/allcase_list.py -----罗列要执行的用例
/test_result/result1.html ----测试报告的存入目录
博客园 — 虫师
http://fnng.cnblogs.com 104
目前看上去还不错的样子~!(得意笑),但是我们项目不同,需求不同,或者当用例达
到一定量级后,还会有很多问题暴露出来,需要我们一一的去解决;好吧~!第三版的内容
就到这里了。
三十、UliPad--python  开发利器
工欲善其事,必先利其器
有时候往往选择太多,变得无从选择。如果你在 python 开发中已经找到了趁手的 IDE这
一节可以无视。
其实,pyhon下面能找到一款不错的开发工具是不太容易的。
IDLE 写写单个小程序很好,但一个程序文件与执行信息是两个窗口,程序开多了就分
不清哪个了。
pythonWin 也用过,窗口有些老土,窗口布局我不会设置,所以觉得也不好用。
notepad++ 这种小巧的万能编辑器,偶尔用用还行。
x linux 会有一些非常不错的交互式python IDE ,如 ipython、bpython 等。
m vim 肯定是开发神器,但一般也只有高手才会运用自如,体会它的奥妙。
UliPad 是找到的写 python 最舒服的一个 IDE 。
地址: https://code.google.com/p/ulipad/
免费,可以免费获得并使用它的所有功能。
支持 windows 、MAC、linux 等平台。
小巧,内存占用很少,10MB 左右。
博客园 — 虫师
http://fnng.cnblogs.com 105
具体,的安装使用,这里就不介绍了,不是本文档的主题。有兴趣使用可以参考我的博客:
http://www.cnblogs.com/fnng/p/3393275.html
另外,还有一些非常棒的收费 python IDE
Wing IDE4.1
http://wingware.com/
pycharm
http://www.jetbrains.com/pycharm/
希望这一节没影响到文档的和谐。呵呵~!
博客园 — 虫师
http://fnng.cnblogs.com 106
后记:
都在谈自动化测试,自动化测试是“部分”功能测试的一种替代技术(它们比例肯定在
逆转)。通过学习自动脚本也可以使测试人员突破不懂代码的限制;而自动化脚本入门简单。
我觉得自动化是方向。
关于自动化又帮了你一段路,但是,依然还有很多问题没有解决;比如,测试用例的多
线程处理。目前的结构还不够完美,在脚本运行中,我们可以捕捉更多的信息,更容易的定
位问题;使我们的结构更灵活的适应需求的变化;路还很长,任重道远,一起加油吧!
这些问题依然不是一份学习文档可以解决的,如果你掌握了本文档的所有内容,建议从
以下几个方面来提高自己的自动化测试水平:
python 语言:兔子(它不让叫兔子了,叫 t MarkRabbit )的话清晰的说明了学习自动
化测试的思路:我们需要用 python 这门语言去调用 selenium 的一些工具来操作浏览器,
帮助我们实现“web UI ”自动化。所以,我们的重心应该放在语言本身的学习。后面这几
章解决问题用的也是 python 技术。
Javascript 语言:在实际的自动化测试过程中,我们会遇到各种问题,有时候 webdriver
提供的方法不能帮我们解决问题,那么需要借助 Javascript 来解决问题。
xpath \css 定位: 不能操作一个元素,很多情况下是我们没办法定位这个元素;所以要
深入了解 xpath \css 定位的用法。
扩展资料:
rtsm eyiselenium 与webdriver 的关系:
http://v.qq.com/boke/page/j/v/v/j01135krrvv.html
lazyman 快速入门:
http://v.qq.com/boke/page/i/k/a/i0113wompka.html
关于 python 自动化的博客,慢慢研读:
博客园 — 虫师
http://fnng.cnblogs.com 107
http://www.cnblogs.com/hzhida/archive/2012/08/13/2637089.html
splinter 自动化框架:
http://splinter.cobrateam.info/docs/why.html
http://v.qq.com/boke/page/s/8/3/s0114uu1d83.html。
大家可以了解一下webdriverguide的内容
webdriverAPI地址:
https://github.com/easonhan007/webdriver_guide
robot framework
自动化测试框架,后序研究。
RF框架系列文章
http://www.51testing.com/?21116/
http://blog.csdn.net/tulituqi/article/category/897484/2
安装:http://blog.sina.com.cn/s/blog_654c6ec70100tkxn.html
selenium webdriver py 文档
http://selenium.googlecode.com/git/docs/api/py/index.html
r seleniumwrapper  0.5.3
https://pypi.python.org/pypi/seleniumwrapper
selenium webdriver 系列教程
http://blog.csdn.net/nbkhic/article/details/6896889
文档
http://selenium.googlecode.com/git/docs/api/py/index.html
phantomJS

相关文章:

  • 2022-12-23
  • 2021-09-21
  • 2021-08-04
  • 2021-12-29
  • 2021-07-28
  • 2021-09-15
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-10-29
  • 2021-06-13
  • 2023-03-07
  • 2021-10-12
相关资源
相似解决方案