复杂元素定位之Xpath轴定位

先说一下轴定位的基本表达式和用法

ancestor:祖先结点 包括父结点

parent:父结点

preceding:当前元素节点标签之前的所有结点(html页面先后顺序)

preceding-sibling:当前元素节点标签之前的所有兄弟结点

following:当前元素节点标签之后的所有结点(html页面先后顺序)

following-sibling:当前元素节点标签之后的所有兄弟结点

使用方法:

/节点名称(例如preceding-sibling)::标签名

注意:使用的时候一定是单斜杠,后面是两个冒号

较多的使用场景:页面显示为一个表格样式的数据列,需要通过组合来定位元素

以上图为例,我们需要定位标题为【回电话号】的【抢投标】,仔细看一下图,除了标题不一样,其他的页面结构完全相同,普通的定位方式显示不能满足我们的需求了因此我们只能借助于通过标题来定位了

我们可以看出这2个元素的祖先是兄弟关系,因为我们可以先定位到【回电话号】,表达式://span[text()=" 回电话号"]

然后找到他的祖先,在前面那个表达式之前继续写:  //span[text()=" 回电话号"]/ancestor::a

找到祖先了,由于我们需要找的元素是这个祖先的兄弟的后代,我们再找他的兄弟,继续写表达式 //span[text()=" 回电话号"]/ancestor::a/following-sibling::div

找到兄弟了,再找兄弟的后代,继续写表达式 //span[text()=" 回电话号"]/ancestor::a/following-sibling::div//a好的,我们找到了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值