一 关于selenium
selenium是ThroughtWorks公司推出的强大的Web功能测试工具系列,主要包括以下组件:
1.Selenium core:支持DHTML的测试案例(效果类似数据驱动测试), 它是selenium IDE和Selenium RC的引擎。
2.Selenium IDE:FireFox的一个插件,支持脚本录制。
3.Selenium RC:Selenium Remote Control。
4.Selenium Grid:允许同事并行,在不同的环境中运行多个测试任务,提高web应用测试的效率。
二 selenium的使用
1.xPath的使用 在编写selenium案例时需要用到xPath,xPath是XML的查询语言。(下面xPath的介绍转载自http://www.cnblogs.com/jianjialin/archive/2009/02/01/1382056.html)
定位节点
xml是树状结构,类似档案系统内数据的结构,xPath也类似档案系统的路径命名方式。不过xPath是一种pattern, 可以选出XML档案中路径符合某个模式的所有节点。例如选出catalog下的cd中所有的price:
/catalog/cd/price
如果xPath的开头是一个斜线(/)代表这是绝对的路径。如果开头是两个斜线(//)表示文件中所有符合模式的元素都会被选出来,即使是处于树中不同的层级也会被选出来。以下语句会选出文件中所有叫做cd的元素:
//cd
选择未知的元素
使用星号(*)可以选择未知的元素。下面这个语法会选出/catalog/cd的所有子元素:
/catalog/cd/*
以下语法会选出所有catalog的子元素中,包含有price作为子元素的元素:
/catalog/*/price
以下的语法会选出有两层父节点,叫做price的所有元素:
/*/*/price
以下的语法会选出文件中的所有元素:
//*
选择分支
使用中括号可以选择分支。以下的语法从catalog的子元素中取出第一个叫做cd的元素。xPath的定义中没有第0元素:
/catalog/cd[1]
以下语法选择catalog中的最后一个cd元素:(xPath没有定义first()这种函数,用[1]取第一个元素):
/catalog/cd[last()]
以下的语法选出含有price子元素的所有/catalog/cd元素:
/catalog/cd[price]
以下的语法会选出price元素的值等于10.90的所有/catalog/cd元素:
/catalog/cd[price=10.90]
以下的语法选出price元素的值等于10.90的所有/catalog/cd元素的price元素:
/catalog/cd[price=10.90]/price
选择一个以上的路径:
使用or操作数(|)就可以选择一个以上的路径。例如:
/catalog/cd/title|catalog/cd/artist
选择所有的title以及artist元素:
//title|//artist
选择所有title以及artist以及price元素:
//title|//artist|//price
选择属性
在xPath中 ,除了选择元素以外,也可以选择属性。属性都以@开头。
选择county的属性:
//@county
选择所有含有county这个属性的cd元素:
//cd[@county]
选择含有属性的所有cd元素:
//cd[@*]
选择出county属性值为UK的cd元素:
//cd[@county="UK"]
三 selenium API 分类
Action:对当前状态进行操作,失败时停止操作。
Assertion: 检验是否有产生正确的值,通常有两种验证方式:
1 Assert: 失败时停止测试
2 Verify: 失败不中断测试
Element Location: 指定HTML中的元素并定位
Patterns: 用于元素匹配