selenium中Xpath表达式的写法


xpath语法:
/    从根结点选取,绝对路径         /放在开头表示绝对路径     /放在两个元素之间表示层级
//   从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置,相对路径
.    选取当前节点
..    选取当前节点的父节点。
and  用于组合条件

绝对路径:/html/body/
相对路径://
填写 xpath: f12,点击element选项,按ctrl+f
xpath语法://input[@name="q"]
抽象后的语法://标签名[@属性名="属性值"]                [@属性名="属性值"]相当于谓语条件

使用xpath查找元素原则:哪个特征最明显,你就用哪一个。
组合条件:id name class_name
//input[@name="q"and @type="text"and @size="12"]


元素的id是唯一的,在同一页面中不可能存在两个相同的id
通过父亲找子代元素: //div[@class="anony-nav"]/div[@class="anony-srh"]
通过祖先找子孙代元素://div[@class="anony-nav"]//div[@class="anony-srh"]   子孙代包含子代  兼容性更好

通过儿子找父亲://div[@class="anony-srh"]/../../..  找祖先的时候只能一层一层上去,不能跨代
找兄弟://div[@class="anony-srh"]/../div    先找到父亲   也可使用轴运算

标签名+节点属性
组合元素索引【下标】
部分属性匹配值
文本内容匹配

xpath用法:
1、//input[@name=""]
2、and组合属性
3、//div/input 单斜杠通过父亲找儿子
4、//div//input 通过祖先找子孙
5、..儿子找父亲
6、//a[text()="豆瓣读书"] 通过文本
   -text不用@,因为它不是属性
7、text() 经常和 contains 组合使用。//a[contains(text(),"豆瓣读书")]
8、索引有两个注意事项:1、加括号.  2、从1开始
   (//a[contains(text(),"豆瓣读书")])[2]

9、following-sibling,preceding-sibling,ancestor  轴:元素和元素之间的关系
   a//ancestor::div[@id="anony-nav"]
   (//a[contains(text(),"豆瓣读书")])//ancestor::div[@id="anony-nav"]

10、*
    //*[@id="anony-sns"]

轴:你想通过一个元素找到另一个元素
称呼:关系://*[@class="account-form-3rd-hd"]//following-sibling::div

css 选择器
xpath和css选择器各有什么优势?
css写法更简单,运行稍快一点,但是css不支持文本定位
xpath 功能更轻 对于复杂定位范围更简洁

八大元素定位,到底用哪个?
-id
-name
-class
-xpath
-css
-link
-partial
-tagname  基本没用

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值