我是靠谱客的博主 美丽冬天,最近开发中收集的这篇文章主要介绍Selenium自动化测试之Xpath网页元素定位,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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网页元素定位所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部