常用XPath定位方法总结

第一章 博大精深xpath

目录

第一章 博大精深xpath

一、结合属性、文本定位

1. id、name、class等

2. 使用text

3. 同时使用多个属性进行定位

二、比较文本内容

1. 等于

2. 包含(contains)

三、根据可定位元素选择其他元素

1. 返回上一级(../)

2. parent::元素类型(返回父元素)

3. sibling(兄弟元素)

4. 选择相同xpath的第i个元素

5.ancestor(祖辈节点)

四、特殊元素的定位方式

1. svg标签

第二章 ?

一、找不到元素

1. 检查时候在iframe里

2. 元素是否加载完毕

3. 元素是否可见

4. 元素是否被遮挡

二、无法输入

附录

参考资料


一、结合属性、文本定位

1. id、name、class等

//div[@name='selecteditem']
//input[contains(@id,'validCode')]

2. 使用text

//*[text()="销售单管理"]

3. 同时使用多个属性进行定位

标签后接多个[],一个[]内的值代表一个属性

//div[@class='f_dn u_fun02'][@style='display: block;' ]//p[text()='{CPMainMenuNameSec}']

二、比较文本内容

1. 等于

//*[text()="销售单管理"]

2. 包含(contains)

//div[contains(text(),"所有功能")]
​
//input[contains(@id,'validCode')]
​
//span[contains(text(),'开户行及账号')]/../input[@type='text']
​
//iframe[contains(@src,'showNewCustPage')]

三、根据可定位元素选择其他元素

1. 返回上一级(../)

//span[text()="销售单名称"]/../input

可返回多级

//div[@id='C']/../..

2. parent::元素类型(返回父元素)

“子元素的xpath/parent::父元素类型”

3. sibling(兄弟元素)

(preceding-sibling::元素类型[序号])(following-sibling::[序号])

//div[text()="J844011100095"]/../preceding-sibling::td[2]//input
​
//div[text()='验收测试-在线充值']/../following-sibling::td[4]//div//span

4. 选择相同xpath的第i个元素

下标从1开始

(//span[text()='否'])[3]

5.ancestor(祖辈节点)

用法同parent,感觉比parent好用,后面可以加序号,若为[1]则表示上一级,不加序号默认最上级

//span[text()='套包集合']/ancestor::div[3]

四、特殊元素的定位方式

1. svg标签

需要使用name定位

//div[@class='el-loading-mask']//*[name()='svg']

第二章 其他情况

一、找不到元素

1. 检查时候在iframe里

2. 元素是否加载完毕

3. 元素是否可见

display:none

type="hidden"

4. 元素是否被遮挡

如下图

//span[text()='稽核通过']

报错,元素不可点击

element click intercepted: Element ... is not clickable at point (969, 793)

解决办法:尝试使用未被遮挡的父元素或最上层元素,或者使用js定位

//span[text()='稽核通过']/..

二、无法输入

附录

参考资料

Katalon系列十九:元素相同或无法定位时的定位技巧 - ☆星空物语☆ - 博客园 (cnblogs.com)

(19条消息) xpath获取同级、父级、子级元素sweetSunny123的博客-CSDN博客xpath 父级

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值