肖sir _ 高级讲师 __多测师自 __自动化遇到的问题归纳

自动化遇到的问题?
1、找不到元素,脚本报"NoSuchElementException:Unable to find element",或者"定位到了,不能操作,点击无效"
解决思路:
首先查看自己的"属性值"是否写正确
元素的标签不唯一,默认找到第一个
向上查看,元素是否在frame或iframe框架中
检查元素属性是否是会变动的、是否是隐藏的

2、脚本太多,执行效率太低
Selenium脚本的执行速度受多方面因素的影响,如网速,操作步骤的繁琐 程度,页面加载的速度,以及我们在脚本中设置的等待时间等。所以不能只去追求速度不保质量的测试,而是首先确保测试的稳定性,稳定地实现测试才是关键所在。
解决思路:
减少操作步骤,如经过三四步才能打开我们要测试的页面的话,我们就可以直接通过网址来打开,减少不必要的操作。

中断页面加载,如果页面加载的内容过多,我们可以查看一下加载慢的原因,如果加载的内容不影响我们测试,就设置超时时间,中断页面加载。

在设置等待时间的时候,可以sleep固定的时间,也可以检测某个元素出现后中断等待也可以提高速度。

3启动浏览器报错
解决思路:几乎是由于浏览器版本与driver版本不匹配

4、日历控件
  日历控件是一种特殊的网页元素,由于其操作的复杂性,我们无法通过模拟手工操作来进行一步步的选择。检查页面元素可以发现,日历控件属于input类型,但是由于其readonly属性,无法使用send_keys直接输入;因此,我们可以通过调用JavaScript脚本(打开Chrome浏览器-右键点击检查-进入console,即可进行JavaScript代码调试
  ),先删除其readonly属性,再使用sendkeys方式进行输入,代码如下:
driver.execute_script('document.getElementById("date").removeAttribute("readonly")')

原文地址:https://www.cnblogs.com/xiaolehua/p/14204023.html