天天看点

xpath常用实例

注意1:查询的节点指向,都是xpath的最后一部分

1、根据属性

By.xpath("//a[@href]") //获取所有的包含href属性的节点,可以一次性获取所有链接
           

2、父节点  “..”  ; 兄弟节点 “ following-sibling::span[1] ” 计数从1开始

已知节点的父节点的第二个div兄弟节点

By.xpath("//span[text()=\"测试用例\"]/../following-sibling::div[2]")
           

3、根据文本查询

  • 直接指定text     //span[text()="测试用例"]
  • 包含一部分文本   //span[contains(text(),"用例")]
  • 对象中有不是文本的部分,先将所有内容转换成string,再包含部分  //span[contains(string(),"用例")]

4、匹配值对象,不止是text,还有属性的值也可以

  • //div[starts-with(@class,'test')]     查找class属性中开始位置包含'test'关键字的div元素
  • //div[contains(@class,'test')]         查找class属性中包含test关键字的div元素

5、关键词::节点名称[下标]

https://www.cnblogs.com/VseYoung/p/8686383.html

XPath轴(XPath Axes)可定义某个相对于当前节点的节点集: 

1、child 选取当前节点的所有子元素      例: //span[text()="用例"]/child::span  

2、parent 选取当前节点的父节点,可以直接用..代替     例://span[text()="用例"]/parent::span 

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 选取当前节点的所有命名空间节点 

继续阅读