概述
XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath虽然是被设计用来搜寻XML文档的,不过它也能很好的在HTML文档中工作,并且大部分浏览器也支持通过XPath来查询节点。
xpath的作用就是两个字“定位”,运用各种方法进行快速准确的定位,推荐两个非常有用的的firefox工具:firebug和xpath checker。
具体的语法请参考W3school
xpath基础
最常用的归纳几点:
1. /(绝对路径,从根节点选取)
2. //(相对路径,所有子代节点,不用考虑是否直接子节点)
3. @ 选取属性
4. “.”选取当前节点
5. “..”选取当前节点的父节点
实例:
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素
/bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素
//title[@lang=’eng’] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性
xpath=(//input[@value=text])[8] 索引,第8个input的value=text
//div[contains(@class,’xxx’)] class包含xxx的div
//div[@class=’xxx’ and @type=’xxx’] 用and连接,以2个属性确定唯一元素,也是可以写成//span[@name=’xxx’][text()=’xxx’]
xpath拓展
- following-sibling: 选择当前节点之后的所有同级节点,那么没有加上“sibling”关键字的,搜索的就是之上/之下的所有节点,忽略同级概念,例如:
<div>
<input id="123">
<input>
</div>
要定位第二个input://input[@id=’123’]/following-sibling::input
preceding-sibling: 选取当前节点之前的所有同级节点
starts-with: 以某某开头,例如://input[starts-with(@class,’xxx’)]
绝对路径 html/body/div/span[2]/input[2] 中间结构变化,就失效
相对路径 //开始,在整个html source里找,不管在什么位置
索引[x] //div/input[2] div下面第二个input
完全匹配 xpath=//*[text()=”Join”]
not关键字 就是否定的意思
比如找一个id不为123的input:input[not[id=’123’]]
又如找一个文本中不包含xxx字段的span://span[not(contains(text(),’xxx’))]通配符 *
比如//span[@*=”xxx”]指定位span中任意属性包含xxx的
比如//[@=”xxx”]指定位页面中任意属性保护xxx的标签
实战积累
xpath=((//table[@class="dashboard-data-table"])[2]//td[contains(@style,"#8dd889")]//..//td[1]/a)[1]
xpath=(//a[@class='dijitStretch link'])[contains(@href,".zip&forceView=true")]
#实战积累# 持续更新中。。。
想要学习CSS Selector进行元素定位的童鞋,请移步:
Web元素定位之CSS Selector
http://blog.csdn.net/ywyxb/article/details/58607218
最后
以上就是美丽冬天为你收集整理的Selenium自动化测试之Xpath网页元素定位的全部内容,希望文章能够帮你解决Selenium自动化测试之Xpath网页元素定位所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复