报错内容
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
无此类元素:无法定位元素
自动化测试定位失败的原因
被定位的元素在网页上是动态渲染的,加载这个元素需要一定的时间
自动化程序跑的比网站更快,导致报错的出现。
上面这个原因也是很多同学在自动化测试中经常出现的问题。
自动化测试定位失败的解决方案
首先从原因分析一下,既然是加载元素需要时间,那么我们就让程序跑慢点,给网页足够的加载时间。
下面是具体的解决方案:
driver.implicitly_wait(10)
# 把代码放在 driver.get() 之前或者之后 都可以
# 引入以上代码可以解决元素加载太慢的问题
# 上面这串代码的意思是 当元素不存在的时候会等待元素出现再执行下一步,等待的时间就是括号内填的参数10,10代表最多等待十秒,当网页的元素在10秒内出现 就会执行 并提前结束跳过等待。
正常的情况下用以上方案就可以解决自动化过程中遇到的90%元素定位失败的问题