Selenium xpath轴定位

时间:2024-05-19 13:17:12

上篇介绍了xpath的其他几种定位方法,这里介绍下xpath中语法稍微复杂点的定位方式:轴定位,虽然语法复杂,但是功能还是挺强大的,比如某个元素的各个属性及其组合都不能定位时,那么可以利用其兄弟节点或者父节点等各种关系可以定位的元素进行定位。

首先看下轴运算的名称:
(截图来自W3school)
Selenium xpath轴定位
使用语法:轴名称::节点名称
接下来通过百度首页来介绍几种常用的
ancestor:选取当前节点的所有先辈(父,祖父等)
//input[@id=‘kw’]//ancestor::span
Selenium xpath轴定位
parent:上层父节点,只有一个
//input[@id=‘kw’]//parent::span 同等于 //input[@id=‘kw’]//…
Selenium xpath轴定位
preceding:当前元素节点标签之前的所有节点(html页面先后顺序)
//input[@id=‘kw’]//preceding::span 匹配到当前元素前面所有的span标签
Selenium xpath轴定位
**following:**当前元素节点标签之后的所有节点(html页面先后顺序)
//input[@id=‘kw’]//following::span 匹配到当前元素后面所有的span标签
Selenium xpath轴定位
sibling:当前元素节点的同级节点,结合preceding,following使用
preceding-sibling:当前元素节点之前的同级节点
//input[@name=‘ie’]//preceding-sibling::input
Selenium xpath轴定位
following-sibling:当前元素节点之后的同级节点
//input[@name=‘ie’]//following-sibling::input
Selenium xpath轴定位
child:当前节点的下层所有的子节点
//span[@id=‘s_kw_wrap’]//child::span
Selenium xpath轴定位
所有的轴都可以组合使用,比如找到所有的子节点后继续找同级:
//span[@id=‘s_kw_wrap’]//child::span//following-sibling::input
Selenium xpath轴定位