定位元素Xpath技巧

Xpath中的绝对路径与相对路径

注意:如果元素的ID不唯一或者是动态的或者name以及linktext属性值也不唯一我们就需要考虑用xpath来查找元素了,然后再对元素执行操作语法:

xpath=//tag[@attibute='value']

绝对路径
(web自动化的时候是不支持用绝对路径写的)
Xpath的绝对路径使用单斜线"/"定位慕课网购物车这个元素

/html/body/div[1]/div/div[2]/ul/li[2]/a/span[2]

相对路径
Xpath的相对路径用双斜线"//"定位慕课网购物车这个元素

//li[@id="shop-cart"]/a/span[2]

"/“和”//"的区别

  • “/”:元素是上一节点的子节点中的一个,不能跳级
  • “//”:下级任何子节点或者任何嵌套子节点中的一个,可以跳级路径里面不要用“*”,要写明标签名
Xpath如何找父节点与相关平级节点

寻找父节点

语法:xpath-to-some-element//parent::<tag>

寻找前面的平级节点

语法:xpath-to-some-element//preceding-sibling::<tag>

寻找后面的平级节点

语法:xpath-to-some-element//following-sibling::<tag>

练习:
https://www.migang.com/help/help_content_recharge

  1. 查找这个页面上的中国银行,对应的限额是多少?

  2. 从中国建设银行定位到中国银行对应的金额:

//div[@id='zc_k']//td[text()='中国建设银行']//parent::tr//preceding-sibling::tr[2]/td[2]

如何构建一个有效的Xpath

1. 用元素的text文本属性来写Xpath

示例:定位慕课网'忘记密码'链接
xpath=//a[text()='忘记密码']

2. 用Contains关键字构建有效的Xpath

语法:
//tag[contains(attribute,'value')]
示例:
//a[contains(text(),'忘记密码')]
//input[contains(@class,'ipt')and contains(@placeholder,'手机号')]
备注:有时候可能需要用到多个contains来定位某个元素

3.用starts-with关键字查找元素

语法:
//tag[starts-with(attribute,'value')]
示例:
//input[starts-with(@class,'xa-emailOrPhone')]
//input[starts-with(@placeholder,'请输入登录')]
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值