selenium自动化测试常见问题

2021-05-26 14:39发布

1. 元素定位失败的问题
selenium是通过元素定位的方式找到需要的目标的,要完整的进行测试,就必须保证找到元素的定位准确。但是在自动化工程的实施过程中,高质量的自动化测试并不只是只能依靠测试人员才能完成,同时也需要开发人员规范开发习惯,如给页面元素加上唯一的name,id等,这样就能大大地提高测试中元素定位的准确性。当然如果开发人员开发不规范,我们在定位元素的时候尽量使用相对地址定位,这样能减少元素定位受页面变化的影响。只要我们元素定位准确,就能保证测试的每一个操作符合我们的预期。
2.脚本太多,执行效率太低
Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐程度,页面加载的速度,以及我们在脚本中设置的等待时间等。所以不能只去追求速度不保质量的测试,而是首先确保测试的稳定性,稳定地实现测试才是关键所在。
我们可以从以下几个方面来提高速度:
1减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。
2中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。
3在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。

 

3.元素不可用问题

在元素定位的路径没有错的情况下,还报该元素不可用的错误,not visible,可能是因为页面未加载完,休眠几秒,再定位即可。Thread.sleep(2000)

 

4.按钮的click方法失效

按钮点击失效:click()方法失效,改用send_keys(Keys.ENTER),直接用发回车键,点击成功

 

5.页面元素过时

报错:stale element reference: element is not attached to the page document,所用元素已经过时,不再依附于当前页面,因为页面进行了刷新或跳转,因此重新定位元素即可。