常用XPath定位方法总结

  • Post author:
  • Post category:其他


第一章 博大精深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 父级



版权声明:本文为weixin_43741194原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。