定位元素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,'请输入登录')]

猜你喜欢

转载自blog.csdn.net/weixin_39386145/article/details/87933439