XPath轴(XPath 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 选取当前节点的所有命名空间节点
preceding-sibling,选取当前节点之前的所有同级节点,同一个parent下该节点之前的节点,即“哥哥”节点(是同父的哥哥节点)。
/AAA/XXX/preceding-sibling:😗 /AAA/XXX节点的所有之前同级节, * 可以是div, span等
几个比较复杂的示例:
父级前面的div,其中i属性包含image //span[text()=“评”]/parent::button/preceding-sibling::div/div/button/span/i[contains(@class,“image”)]
div属性中style属性不包含display的 //div[not(contains(@style,“display”))]/ul/li[text()=“撤回”]
//div[@role=“dialog” and @aria-labelledby=“确定要发送这张照片吗”]/div/button/div/span[text()=“确认”]
当前div父级元素的下一个兄弟元素 //div[text()=“示忙原因选择”]/parent::div/following-sibling::div[1]/div/label[4]/i