如果一个元素无法定位,脚本报错了,你一般会考虑哪些方面的原因?
第一个,页面加载过慢,你要去加等待时间。
然后页面可能有frame框架页,你需要先跳转进去。
还有可能元素是动态元素,什么叫动态元素?有些元素它的id或者名字是动态的,我们可以通过父节点或兄弟节点去定位,定位方式要优化。
还有可能这些元素识别了,但是不能操作,需要会用js把前置的操作完成。
如果一个元素无法定位,你一般会考虑哪些方面的原因?
总结:
1.页面加载元素过慢,加等待时间。
2.页面有frame框架页,需要先跳转入frame框架再定位。
3.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。
4.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用js先把前置的操作完成。
相信前面三个,大家好理解一点。
第四个我们一起来看实际的案例
(这其实也是一个面试题,面试官会问到你,你做自动化过程中遇到了什么问题,你是如何解决的?理解之后你就可以拿来和面试官说)
我之前定位到一个元素,明明定位到了,但是却不能操作,那么我是怎么处理的?
用js把前置的操作完成。
我打开了一个常用网站

像12306网站这个元素你就不可以操作,不可以输入,不知道平时买票的时候有没有注意过,可以现在试一下。

这个出发日期是操作不了的,你是删除不了的,你只能选择,你输入也输入不了。(无法输入,无法删除)
因为它有一个属性,readonly属性,只是可以读的属性,

当遇到元素定位失败的问题,可以从四个方面排查:1) 加载延迟,需要增加等待时间;2) 页面可能存在frame,需切换frame;3) 元素可能是动态的,考虑优化定位方式;4) 元素可能不可操作,如readonly,需通过JS预处理。文中以12306网站为例,解释了readonly属性导致的操作限制,并强调自动化测试中权限管理和元素可见性的重要性。
最低0.47元/天 解锁文章
842

被折叠的 条评论
为什么被折叠?



