MeterSphere 中 UI 测试的常用调试技巧


朱飞鸽
飞致云 发布于 2023-12-06 / 377 阅读 / 0 评论 /
1、页面中包含多个相同元素,如何通过 xpath 元素定位更加准确唯一? 【场景说明】 目的是通过点击下拉框中的“激活失败”实现元素操作,但整个页面中存在两个同样的“激活失败”的元素,如图所示:下拉框中有“激活失败”、列表数据中也有“激活失败”的元素, 最终就会导致://span[contains(

1、页面中包含多个相同元素,如何通过 xpath 元素定位更加准确唯一?

【场景说明】

目的是通过点击下拉框中的“激活失败”实现元素操作,但整个页面中存在两个同样的“激活失败”的元素,如图所示:下拉框中有“激活失败”、列表数据中也有“激活失败”的元素, 最终就会导致://span[contains(text(),'激活失败')] 可以匹配到多个元素,而 MeterSphere 中默认会按照 xpath://span[contains(text(),'激活失败')] 匹配到的第一个,则是是列表中的激活失败,所以UI测试用例执行时点击无法定位更无法点击到下拉框中的“激活失败”,导致点击下拉框的“激活失败”用例执行失败。

【调试技巧】

针对该 xpath 进行修改确保xpath能匹配到定位的更加准确,比如:比对列表和下拉框 //span[contains(text(),'激活失败')] 的父级目录是否有差异,如果没有继续找父级的父级即可,可优化为 //li/span[contains(text(),'激活失败')] 。

2、下拉框内容太多,导致加载超时无法正确选中下拉框中的元素?

【场景说明】

如下图所示,下拉框罗列内容太多,通过鼠标操作-鼠标点击(左键)实现UI操作时,从下拉框中点击的元素需定位的元素无法选中,导致用例执行失败。

【调试技巧】

当遇到下拉框的下拉选项或者其他遮掩情况时,使用鼠标点击(左键)时勾选上强制点击选项,可以解决绝大部分点击不到元素导致用例执行失败的问题。

3、点击按钮后数据刷新,刷新结果数据需作为后置元素断言依据,而断言经常失败最终导致用例执行失败怎么办?

【场景说明】

如下图所示,输入 ID 点击查询,查询结果未加载完成,即搜索结果中的列表数据还未完成刷新(一般查询后需要等待几秒才能更新查询结果),而这时根据 xpath 已经提取了未刷新页面的值作为了后置断言参数,结果断言失败,最终导致执行用例失败。

【调试技巧】

在涉及数据刷新后提取参数进行后置元素断言时,在后置脚本的元素断言之前增加一个等待时间,时长参考页面刷新数据的长短 +200 毫秒(效果最佳)。



是否对你有帮助?