打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Xpath语法&示例

https://www.cnblogs.com/songzhenhua/p/10260945.html

一、选取节点
常用的路径表达式:

表达式描述实例 
nodename选取nodename节点的所有子节点xpath(‘//div’)选取了div节点的所有子节点
/从根节点选取xpath(‘/div’)从根节点上选取div节点
//选取所有的当前节点,不考虑他们的位置xpath(‘//div’)选取所有的div节点
.选取当前节点xpath(‘./div’)选取当前节点下的div节点
..选取当前节点的父节点xpath(‘..’)回到上一个节点
@选取属性xpath(’//@calss’)选取所有的class属性

二、谓语

谓语被嵌在方括号内,用来查找某个特定的节点或包含某个制定的值的节点

实例: 

表达式结果
xpath(‘/body/div[1]’)选取body下的第一个div节点
xpath(‘/body/div[last()]’)选取body下最后一个div节点
xpath(‘/body/div[last()-1]’)选取body下倒数第二个div节点
xpath(‘/body/div[positon()<3]’)选取body下前两个div节点
xpath(‘/body/div[@class]’)选取body下带有class属性的div节点
xpath(‘/body/div[@class=”main”]’)选取body下class属性为main的div节点
xpath(‘/body/div[price>35.00]’)选取body下price元素值大于35的div节点

 三、通配符

Xpath通过通配符来选取未知的XML元素

表达式结果
xpath(’/div/*’)选取div下的所有子节点
xpath(‘/div[@*]’)选取所有带属性的div节点

 四、取多个路径

使用“|”运算符可以选取多个路径

表达式结果
xpath(‘//div|//table’)选取所有的div和table节点

五、Xpath轴

轴可以定义相对于当前节点的节点集

轴名称表达式描述
ancestorxpath(‘./ancestor::*’)选取当前节点的所有先辈节点(父、祖父)
ancestor-or-selfxpath(‘./ancestor-or-self::*’)选取当前节点的所有先辈节点以及节点本身
attributexpath(‘./attribute::*’)选取当前节点的所有属性
childxpath(‘./child::*’)返回当前节点的所有子节点
descendantxpath(‘./descendant::*’)返回当前节点的所有后代节点(子节点、孙节点)
followingxpath(‘./following::*’)选取文档中当前节点结束标签后的所有节点
following-sibingxpath(‘./following-sibing::*’)选取当前节点之后的兄弟节点
parentxpath(‘./parent::*’)选取当前节点的父节点
precedingxpath(‘./preceding::*’)选取文档中当前节点开始标签前的所有节点

 

preceding-siblingxpath(‘./preceding-sibling::*’)选取当前节点之前的兄弟节点
selfxpath(‘./self::*’)选取当前节点

 

六、功能函数   

使用功能函数能够更好的进行模糊搜索

函数用法解释
starts-withxpath(‘//div[starts-with(@id,”ma”)]‘)选取id值以ma开头的div节点
containsxpath(‘//div[contains(@id,”ma”)]‘)选取id值包含ma的div节点
andxpath(‘//div[contains(@id,”ma”) and contains(@id,”in”)]‘)选取id值包含ma和in的div节点
text()xpath(‘//div[contains(text(),”ma”)]‘)选取节点文本包含ma的div节点

转自https://www.cnblogs.com/MUMO/p/5732836.html

------------------------------------------------------------------------------------------------------------------
补充:
//input[not(@id='123')]               找id不为123的input
//span[substring(@name,3,5)='xxxxx']        name属性第3个字符开始的5个字符是xxxxx的
//span[sbustring-before(@class,"-")="spanclass1"]  class属性中-字符前面的字符是spanclass1
//span[sbustring-after(@class,"-")="spanclass1"]   class属性中-字符后面的字符是spanclass1
//div[div[@id='xxx']]                依靠子节点定位

---------------------------------------------------------------------------------

关注微信公众号即可在手机上查阅,并可接收更多测试分享~

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用Xpath获取页面元素
Xpath语法
python爬虫:scrapy框架xpath和css选择器语法
小白学 Python 爬虫(20):Xpath 进阶
[精]Xpath路径表达式
第64天:XPath 和 lxml
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服