selenium入门教程
2015-12-21 00:33
274 查看
详细教程上极客书 http://gitbook.net/selenium
一,简介
Selenium是ThoughtWorks开发的一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。极大的方便了Web应用的自动化测试。支持所有主流的浏览器。这个工具的主要功能包括:
测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
测试系统功能——创建衰退测试检验软件功能和用户需求。
支持自动录制动作和自动生成DotNet, Java, Perl, Python等不同语言的测试脚本。
二,下载
因为Selenium的官网是部署在google云上,所以国内不能访问。最新的程序可以通过以下地址下载。
selenium-server-standalone-2.48.2.jar
selenium-java-2.48.2.zip
selenium-dotnet-2.48.0.zip
三,元素定位
在Selenium的基本语法中首先是需要定位网页元素的,Selenium通过找寻到界面元素然后触发相应的时间,通过页面元素变化判断是否执行了相应的操作。可以通过页面元素的属性获取相应的页面元素。
1.通过Identifier(id)定位元素
所给出的定位的HTML元素必须要有identifier,如果没有就会报告未找到相应元素的错误。通过ID来标识可以确定唯一性。
2.通过Name定位元素
使用Name定位元素的位置,会匹配第一个与Name匹配的元素。如果页面中有多个相同的Name,可以使用更多的筛选器进行元素筛选的细化。
3.通过Xpath定位元素
在一些情况下无法得知页面元素的id和name,还可以使用xpath从已知节点开始定位相应的元素。
绝对路径进行定位 xpath=/html/body/form[1]
通过元素的相应属性定位例如xpath=//form[@id='loginForm'] 表示从根节点开始查找一个form元素她包含一个属性是id并且里面的值为 loginForm
找到某一个元素下相应的子元素 xpath=//form[input/@name='username'] 找到Form表单下面的input元素并且该元素有一个属性name且该name的值是username。
找到第一个指定的元素 xpath=//input[@name='username'] 扎到第一个input元素里面有一个name属性并且该属性值为username
还可以使用更加细分的查找 xpath = //input[@name='continue'][@type='button'] 找到input标签,1.该标签有一个name=continue属性和type=button属性的元素。
4.通过连接定位元素
WebElement ele = By.LinkText("xxxx");当知晓相应的链接类容就可以定位到相应的元素。
5.通过DOM元素定位元素
DOM元素是HTML的基本元素,而且只有dom定位可以直接通过document
6.通过tagName,通过标签名称进行定位
List<WebElement> eles = By.TagName("tagname");
在一个页面中相同的tag标签太多了,如果仅适用单个tagname查询会找到一个列表。
7.通过Css进行定位(Cascading Style Sheets)
一,简介
Selenium是ThoughtWorks开发的一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。极大的方便了Web应用的自动化测试。支持所有主流的浏览器。这个工具的主要功能包括:
测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。
测试系统功能——创建衰退测试检验软件功能和用户需求。
支持自动录制动作和自动生成DotNet, Java, Perl, Python等不同语言的测试脚本。
二,下载
因为Selenium的官网是部署在google云上,所以国内不能访问。最新的程序可以通过以下地址下载。
selenium-server-standalone-2.48.2.jar
selenium-java-2.48.2.zip
selenium-dotnet-2.48.0.zip
三,元素定位
在Selenium的基本语法中首先是需要定位网页元素的,Selenium通过找寻到界面元素然后触发相应的时间,通过页面元素变化判断是否执行了相应的操作。可以通过页面元素的属性获取相应的页面元素。
1.通过Identifier(id)定位元素
所给出的定位的HTML元素必须要有identifier,如果没有就会报告未找到相应元素的错误。通过ID来标识可以确定唯一性。
WebElement ele = By.id("idName");
2.通过Name定位元素
使用Name定位元素的位置,会匹配第一个与Name匹配的元素。如果页面中有多个相同的Name,可以使用更多的筛选器进行元素筛选的细化。
WebElement ele = By.Name("name");
3.通过Xpath定位元素
在一些情况下无法得知页面元素的id和name,还可以使用xpath从已知节点开始定位相应的元素。
绝对路径进行定位 xpath=/html/body/form[1]
通过元素的相应属性定位例如xpath=//form[@id='loginForm'] 表示从根节点开始查找一个form元素她包含一个属性是id并且里面的值为 loginForm
找到某一个元素下相应的子元素 xpath=//form[input/@name='username'] 找到Form表单下面的input元素并且该元素有一个属性name且该name的值是username。
找到第一个指定的元素 xpath=//input[@name='username'] 扎到第一个input元素里面有一个name属性并且该属性值为username
还可以使用更加细分的查找 xpath = //input[@name='continue'][@type='button'] 找到input标签,1.该标签有一个name=continue属性和type=button属性的元素。
4.通过连接定位元素
WebElement ele = By.LinkText("xxxx");当知晓相应的链接类容就可以定位到相应的元素。
5.通过DOM元素定位元素
DOM元素是HTML的基本元素,而且只有dom定位可以直接通过document
<pre name="code" class="javascript">dom=document.getElementById('loginForm') dom=document.forms['loginForm'] dom=document.forms[0] document.forms[0].username document.forms[0].elements['username'] document.forms[0].elements[0] document.forms[0].elements[3]
6.通过tagName,通过标签名称进行定位
List<WebElement> eles = By.TagName("tagname");
在一个页面中相同的tag标签太多了,如果仅适用单个tagname查询会找到一个列表。
7.通过Css进行定位(Cascading Style Sheets)
css=form#loginForm css=input[name="username"] css=input.required[type="text"] css=input.passfield css=#loginForm input[type="button"] css=#loginForm input:nth-child(2)
相关文章推荐
- 期末总结
- 3.UITextField与UIDatePickrController的简单使用
- 191. Number of 1 Bits
- 全排列问题(第0届第1题)
- Volley
- 基于行为命令队列的Behaviour系统设计
- 行为树结构(简易版)
- hdu5548
- ThinkPHP 3.2.3 中设置和使用 Session
- linux里面的特殊$变量
- Ubuntu语言无法切换中文问题
- Arcgis Server发布服务
- const 指针与指向const的指针
- 【Unity】游戏缩减压缩包大小(一)
- LeetCode 119:Pascal's Triangle II
- 行为树随笔
- One Month~
- linux下使用vi编辑器简单介绍
- java反射获得泛型参数GETGENERICSUPERCLASS()
- cout和printf