【xpath高级用法】总结很全!!!

一、符号:

  1. 管道符号

| 管道符号,可以选取若干路径

//a[@class='zcjd-xxgk'][1]  |   //a[@class='zcjd-xxgk'][2]

在这里插入图片描述

  1. 通配符号

* 通配符,可以匹配所以标签

//*[@id='search-input'] #//input[@id='search-input']

在这里插入图片描述

二、函数

  1. local-name

获取节点标签名称

local-name(//input[@id='search-input'])#input
  1. contains

模糊匹配文本

//a[contains(text(),'天津')]

在这里插入图片描述

  1. text,string函数

主要是对文本内容进行取值或定位

//div[@class='list_page clearfix ng-scope']/a[text()='尾页']

在这里插入图片描述

可以和contains函数一起使用,

//div[@class='list_page clearfix ng-scope']/a[contains(text(),'页')]

在这里插入图片描述

//div[@class='list_page clearfix ng-scope']/a[contains(string(),'页')]

在这里插入图片描述

唯一的区别就是:

  • string()是获取当前标签下所有的子节点的文本(多级节点可用);
  • text()是获取当前标签下所有的文本;
  1. last函数

索引从1开始,last()索引就是总长数

//div[@class='list_page clearfix ng-scope']/a[last()-1]#倒数第二个

在这里插入图片描述

三、逻辑

  • and

and表达式:比如下面这个例子,选取这个为flag代表翻页结束,一般网页都会有disabled
文本为下一页,有标志 两个都满足(只是举个例子还有很多用法)

//a[contains(string(),'下一页') and @class='disabled']

在这里插入图片描述

  • or
//input[@id='search-input' or @title="大家在搜 积分落户"]

or表达式:比如下面这个例子,定位搜索框可以通过idtitle属性去定位
两个满足一个即可

在这里插入图片描述

四、Axes(轴)、步

  1. child 选取当前节点的所有子元素
  2. parent 选取当前节点的父节点
  3. descendant选取当前节点的所有后代元素(子、孙等)
  4. ancestor 选取当前节点的所有先辈(父、祖父等)
  5. descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身
  6. ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
  7. preceding-sibling选取当前节点之前的所有同级节点
  8. following-sibling选取当前节点之后的所有同级节点
  9. preceding选取文档中当前节点的开始标签之前的所有节点
  10. following选取文档中当前节点的结束标签之后的所有节点
  11. self 选取当前节点
  12. attribute 选取当前节点的所有属性
  13. namespace选取当前节点的所有命名空间节点

步的语法:
轴名称::属性或者函数[谓语]

在这里插入图片描述

这些方法很实用,这里我只举一个例子
following-sibling

选取文档中当前节点的结束标签之后的所有节点,
比如说现在有翻页需求但是只显示页码,没有下一页或者其他标志
​​​​
可以使用这个选取当前页的后面一页

//*[@id="pagination"]/li[@class="active"]/following-sibling::li[1]/a

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值