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