元素的定位
为什么要学习元素定位?
1)计算机没有智能到人的程度。
2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。
3)计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)
元素定位的工具或手段有哪些?
1)css选择器
2)xpath
环境及工具
1)firefox35
2)firebug插件
3)firepath插件
xpath
什么是xpath?
XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。
什么是XML?
XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 的设计宗旨是传输数据,而非显示数据
XML与HTML
节点
节点的概念:每个XML/HTML的标签我们都称之为节点
获取元素
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件 系统中看到的表达式非常相似。
nodename 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
. 选取当前节点
查找某个特定的节点或者包含某个指定的值的节点
/bookstore/book[1] 选取属于bookstore子元素的第一个book元素
/bookstore/book[last()] 选取属于bookstore子元素的最后一个book元素
/bookstore/book[last()-1] 选取属于bookstore子元素的倒数第二个book元素
/bookstore/book[position()<3]选取最前面的两个属于bookstore元素的子元素的book元素
//title[@lang]选取所有拥有名为lang的属性的title元素
//title[@lang='eng']选取所有title元素,且这些元素拥有值为eng的lang值
*匹配任何元素节点
@*匹配任何属性节点
node()匹配任何类型的节点
/bookstore/* 选取bookstore元素的所有子元素
//*选取文档中的所有元素
html/node()/meta/@* 选择html下面任何节点下的meta节点的所有属性
//title[@*]
//book/title | //book/price 选取book元素的所有title和price元素
//title | //price 选取文档中所有的title和price元素
//bookstore/book/title | //price 选取属于bookstore元素的book元素的所有title元素,以及文档中所有的price元素.
//*[text()="x'x'x"] 全部/title/text() 文本内容是xxx的元素
//*[starts-with(@href,"//ss1")]属性以xxx开头的元素
//*[contains(@href,"//ss1")] 属性中含有xxx的元素
//*[@attribute1=value1 and @attribute2=value2] 同时有两个属性值的元素
css选择器
什么是css选择器?
CSS 中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素, 我们在编写自动化测试脚本的时候很多时候是在不断地找到css选择器。
css选择器语法
1)通过伪类名、id、标签名定位
.class
#id
*
element
element,element 选择所有<div>元素和所有<p>元素
element element选择所有<div>元素内部的所有<p>元素
element>element 选择父元素为<div>元素的所有<p>元素
[attribute] 选择带有targer属性所有元素
[attribute = value]