【自动化测试_selenium】Xpath定位方法

本文详细介绍了Selenium自动化测试中XPath的定位方法,包括绝对路径、相对路径、索引定位、属性定位、通配符*的使用、部分属性匹配、文本定位、复合属性定位、匹配同级元素、遍历后代节点、先辈节点、直属父节点以及元素的位置匹配。通过这些策略,可以精准地定位网页元素进行自动化操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 绝对路径

# /是绝对路径定位
/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input

2. 相对路径

# //是相对路径定位
//span/input

3. 索引定位

//form/span[1]/input

4. 属性定位

# 属性可以放在对应的路径层级中使用
//input[@autocomplete="off"]
//div[@class="ivu"]/div/div/div[2]/div[2]/button[1]

5. 通配符定位,通配符就是*,*就是任何一个都可以的意思

# 任意一个标签,只要符合后面的属性就可以
//*[@id="kw"]
# input标签,不管什么属性只要属性符合就可以
//input[@*="kw"]

6. 部分属性,模糊匹配

# 包含f的autocomplete属性
//input[contains(@autocomplete,"f")]

# 以of为开头的autocomplete属性
//input[starts-with(@autocomplete,"of")]

# autocomplete的属性,属性内容从第二个字母开始到结束为ff,这个属性内容必须写到结尾
//input[substring(@autocomplete,2)="ff"]

7. 文本定位

# 文本定位的写法与属性定位的写法不同,前面没有@,text后要有()
//span[text()="按图片搜索"]


# 文本内容的模糊匹配,也是前面没有@,text后要有()
 //span[contains(text(),"搜索")]

8. 同时用两种属性定位

# and写法
//a[text()="更多" and @class='s-bri c-font-normal c-color-t']

# 两个[][]写法
//a[text()="更多"][@class='s-bri c-font-normal c-color-t']

# and写法,class属性内容模糊匹配
//a[text()="更多" and contains(@class,"s-bri")]

# 两个[][]写法,class属性内容模糊匹配
//a[text()="更多"][contains(@class,"s-bri")]

9. 匹配同级另一个属性

# 元素的同级,下面第一个input节点
//span[@class="bg s_btn_wr"]/following-sibling::input[1]

# 元素的同级,上面第一个input节点
//span[@class="bg s_btn_wr"]/preceding-sibling::input[1]

10. 匹配所有后代节点

# 选取元素form[@id="form"]的所有后代元素节点中input[@id="kw"]
//form[@id="form"]/descendant::input[@id="kw"]

11. 匹配所有先辈节点

# 选取元素input[@id="kw"]的所有先辈元素节点中div[@class="s_form s_form_nologin"]
//input[@id="kw"]/ancestor::div[@class="s_form s_form_nologin"]

12. 匹配直属父节点

# parent定位方法,元素的直属父级form节点
//span[@class="bg s_btn_wr"]/parent::form

# ..定位方法
//span[@class="bg s_btn_wr"]/..

13. 匹配元素位置

# 第一个元素
//*[@id="common-header"]/div[1]

# 最后一个元素
//*[@id="common-header"]/div[last()]

# 倒数第二个元素
//*[@id="common-header"]/div[last()-1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值