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