【导读】Selenium是一款基于web应用程序的开源测试工具。它支持Firefox、ie、Mozilla等众多浏览器。简单灵活、支持很多种语言。SeleniumCore:支持DHTML的测试案例(效果类似数据驱。SeleniumIDE:FireFox的一个插件,支持脚本录制。我会主要针对SeleniumRC展开介绍。SeleniumGrid:允许同时并行地、在不同的环境上运行多。个测试任务,极大地加快Web应用的功能测试。点击右侧的红色按钮开始录制。需要注意的是启动。脚本回放成功为淡绿色,验证信息。工具默认将操作步骤记录为html格式,点击options?以选择你要转化的语言。从这儿可以看出selenium的强大之处。RFT将所有的页面元素编织成树形的地图,通过键值对来。identifierlocators首先查找HTML中是否存在该id的元素,在没有locator前序的情况下如果以"document."开头,则默。XPath使用路径表达式在XML文档中进行导航。XPath包含一个标准函数库
【正文】
Python+selenium自动
化测试入门
孔祥祝
Selenium简介
Selenium是一款基于web应用程序的开源测试工具。
Selenium测试直接运行在浏览器中,就像真正的用户在操
作一样。它支持Firefox、ie、Mozilla等众多浏览器。它同
时直至JAVA、C#、Ruby、Python、PHP、Perl等众多的主流
语言。
Selenium简介-特点
开源、轻量
运行在浏览器中
简单灵活、支持很多种语言
IED提供录制功能
Selenium简介
SeleniumCore:支持DHTML的测试案例(效果类似数据驱
动测试),它是SeleniumIDE和SeleniumRC的引擎
SeleniumIDE:FireFox的一个插件,支持脚本录制。
SeleniumRC:SeleniumRemoteControl。后续的系列文章
我会主要针对SeleniumRC展开介绍。
SeleniumGrid:允许同时并行地、在不同的环境上运行多
个测试任务,极大地加快Web应用的功能测试。
Selenium简介
SeleniumIDE的安装
官网的下载路径
ide/
安装:将这个文件拖入到firefox窗口
SeleniumIDE的录制功能
如下图启动Firefox工具seleniumIDE
SeleniumIDE的录制功能
点击右侧的红色按钮开始录制。需要注意的是启动
seleniumIDE后工具默认的就是开始录制。
SeleniumIDE的录制功能
打开百度输入”seleniumide”点击查询,整个步骤录制后
如下。
SeleniumIDE的录制功能
可以点击回放一下。脚本回放成功为淡绿色,验证信息
回放成功为深绿色
SeleniumIDE的录制功能
工具默认将操作步骤记录为html格式,点击optionsformat可
以选择你要转化的语言。从这儿可以看出selenium的强大之处。
SeleniumIDE的录制功能
转化之后再
source面板可
以看到转化后
的代码,如右
图
SeleniumRC的工作原理-RC的组成
Seleniumserver的安装和启动
官网的下载
cmdjava-jar
需要javasdk
Python自动化
安装
将
(
#md5=fc856390a87800c463c7e2d3800e3112)
的selenium目录拷到C:\Python27\Lib\site-packages下
录制
保存为rcpython
Python下运行
具体测试用例
定位元素
结合Xpathchecker和firebug
ElementLocators==testobjectMap?
RFT将所有的页面元素编织成树形的地图,通过键值对来
进行精确地定位
Selenium则通过元素定位器来获取页面元素。
ElementLocators
id=id
idlocators指定HTML中唯一的id元素
name=name
namelocators指定HTML中相同的name元素中的第一个元
素
identifier=id
identifierlocators首先查找HTML中是否存在该id的元素,
若不存在,则查找第一个该name的元素
ElementLocators
dom=JavaScriptExpressiondomlocator用JavaScript表达式
来定位HTML中的元素,注意必须要以"document"开头
例如:
dom=['myForm'].myDropdown
dom=[56]
ElementLocators
xpath=xpathExpression
xpathlocator用XPath表达式来定位HTML中的元素,必须注
意要以"//"开头
例如:
xpath=//img[@alt='Theimagealttext']
xpath=//table[@id='table1']//tr[4]/td[2]
ElementLocators
link=textPattern
linklocator用link来选择HTML中的连接或锚元素
例如:link=Thelinktext
在没有locator前序的情况下如果以"document."开头,则默
认是使用domlocator,如果是以"//"开头,则默认使用
xpathlocator,其余情况均认作identifierlocator
ElementLocators-xpath
XPath使用路径表达式在XML文档中进行导航
XPath是一门在XML文档中查找信息的语言
XPath包含一个标准函数库
XPath是XSLT中的主要元素
XPath是一个W3C标准
ElementLocators-xpath
a)nodename:选取此节点的所有子节点
b)/:从根节点选取(绝对路径)
c)//:从匹配选择的当前节点选择文档中的节点,而不考
虑它们的位置
d).:选取当前节点
e)..:选取当前节点的父节点
f)@:选取属性
ElementLocators-xpath
no!
no
no!
no
ElementLocators-xpath
yes!
yes
yes
ElementLocators-xpath
选出所有的tools所有的子元素
/tools/*
选出文件中的所有元素
//*
选出所有的free元素
//free
注意:这里查找的free元素包括tool和use的子元素
ElementLocators-xpath
选出tool下的free元素
//tools/tool/free
选出tools下的第一个tool元素
//tools/tool[1]
选出tools下的最后一个tool元素
//tools/tool[last()]
选出free为no的所有的tool元素
//tools/tool[free=no]
ElementLocators-xpath
选出所有含有name属性的tool
//tool[@name]
选出name属性为selenium的tool
//tool[@name=‘selenium’]
Firebug+xpathchecker
启动Firefox工具附加组件
Firebug+xpathchecker
启动附加组件后点击获取附件组件,输入firebug回车,
选中firebug后点击天机制Firefox。同样的方法添加xpath
checker
Firebug+xpathchecker
如右图
打开
firebug或
者直接点
击F12打开
firebug
Firebug+xpathchecker
如下图点击按钮后鼠标置于页面处,可迅速定位到页面
元素对应的代码
Firebug+xpathchecker
右键菜单中打开ViewXpath
Firebug+xpathchecker
如右图所示可以
根据firebug中的定位
后的代码写出对应
页面元素的xpath,
然后在xpathchecker
中进行检查,若
xpath正确则返回对
应的页面元素