Xpath定位方式

Xpath定位方法

 **浏览器中如何找到元素**

Chrome浏览器:按F12,将鼠标点击下图中的图标,再到浏览器页面上选择需要定位的元素,Elements页中就会自动定位高亮显示页面中的元素。

1.1.绝对路径定位

顾名思义,将Xpath表达式从html的最外层节点,逐层填写,最后定位到操作元素

类似:
/html/body/app-root/html/body/app-root/div
这种方法,一旦路径有变化会导致定位失败,所以不推荐使用该方式。

1.2.相对路径定位

绝对路径与相对路径的差别与文件系统中的绝对和相对路径类似,相对路径是只给出元素路径的部分信息,在html的任意层次中寻找符合条件的元素。

语句以//开始
通过相对路径定位元素,提取的是元素的部分特征,只要提取恰当,能够保证版本间稳定,是进行自动化测试的首选,示例中通过相对路径直 
接定位,实际使用中会结合属性等其他特征,共同定位。
例如://label[text()='备注:']/../div/div/input

1.3.属性值定位

属性是HTML里面的属性,如ID,name,class等等,属性定位前面加@标志,“=”后面是属性值
//div[@class='iui-app-map-container']
表示class属性为iui-app-map-container的div
//input[@placeholder='请输入运费金额']

1.4.索引号定位

//form/div[1]:表示form下的第一个div
//form/div[last()]:表示form下的最后一个div
//form/div[last()-1]:表示form下的倒数第二个div

1.5.属性值模糊匹配定位

模糊匹配的函数有两种:
{{:xpath3.png?400|}}
//label[starts-with(@class,'btn')]
//label[contains(@class,'btn')]

1.6.文本内容定位

文本内容的定位是利用html的text字段进行定位的方法,可以看做是属性值定位的衍生
//button[text()='下一步']
由于“下一步”这几个字是浏览器界面就可以看到的,我们称为“所见即所得”,这种特征改的可能性非常小,所以非常未定,优先推荐使用。
与属性值类似,文本内容也支持starts-with和contains模糊匹配。
//button[contains(text(),'步')]
//button[starts-with(text(),'步')]

1.7.扩展

① Xpath定位扩展
使用通过子节点定位父节点
..代表父节点;../..爷爷节点
//span[contains(text(),'1.jpg')]/..
② Xpath还支持布尔定位
Xpath = //input[@id='kw1' and @name='wd']
可以and ,当然也可以or :
path = //input[@id='kw1' or @name='wd']

Xpath调试

如何知道Xpath表达式是否正确,是否可以找到元素呢?

可以在 console控制台进行Xpath的调试

$x(“Xpath表达式”) 进行

注意:语法中括号里需要通过双引号括起来,如果xpath语句中有双引号,要改成单引号,不然只能解析到第一对双引号的内容

Xpath总结

Xpath的功能非常强大,不仅能够完成界面定位的任务,而且能保证稳定性,实际自动化测试中,能够识别界面元素是重要的,更重要的是要保证版本间的稳定性,减少脚本的维护工作。

如下规则请参考:

特征越少越好

特征越是界面可见的越好

不能使用绝对路径

避免使用索引号

擅用console调试

相对路径,属性值,文本内容,可以任意组合,当然属性值和文本内容的模糊匹配也支持和上述方式任意组合,

 

posted @ 2023-08-11 09:59  zhengpei  阅读(84)  评论(0编辑  收藏  举报