元素 XPATH 定位点击为什么老失败?
在进行 UI 自动化编码时,一个重要环节即元素定位,根据我们平台特点,我经常采用 xpath 进行元素定位。但在 xpath 定位过程中,会遇到定位失败的问题,如以下几个现象:
(1)当平台正在转圈保存数据或加载时,后一步定位操作已经开始,导致元素可以定位到但无法点击,从而导致元素点击失败。
原因:大多数平台在保存加载数据时,都是在当前界面添加了 loading 等待,但是面元素依然可以成功定位,但是无法点击。
(2)平台正常且无任何加载,但元素定位失败
原因:可能是 xpath 定位信息太繁琐、层级太多、采用绝对路径导致
那么如何解决上述问题呢?
1.如果是 xpath 定位信息太繁琐、层级太多、采用绝对路径导致。可采用简化 xpath 定位信息,尽量采用绝对路径进行定位,例如 id、name、class、text 等等
2.如果是界面 loading 时,提前界入定位。代码中可添加代码休眠、或者添加循环+异常捕捉处理。
(1)代码中添加休眠 sleep 等待时,休眠时间需要把控合理,否则影响脚本整体运行时间。
(2)一次元素定位失败,可采用多次循环且添加异常捕捉的方式改善,代码如下:
循环捕捉的方法
好了,大概就写这么多,如果其他小伙伴也存在 xpath 定位失败的问题,欢迎随时交流哈。
版权声明: 本文为 InfoQ 作者【小小娃爱吃甜食】的原创文章。
原文链接:【http://xie.infoq.cn/article/a682c5d0cc609f7f833fa52f4】。未经作者许可,禁止转载。
评论