当浏览器加载页面时,我们想要与之交互的元素可能尚未被加载出来。此刻不仅难以识别元素,而且很容易定位不到元素,抛出异常。设置等待,我们可以解决此问题。
常用的有三种元素等待方式:隐式等待、显示等待、强制等待
一、隐式等待
通过implicitly Wait完成的延时等待,注意这种是针对全局设置的等待,如设置超时时间为10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常,隐式等待比较智能,它可以通过全局配置,但是只能用于元素定位。
driver.implicitly_wait(10)
二、显示等待
显式等待:也称为智能等待,针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元素则直接返回,如果在超时还没有找到元素,则抛出异常,显示等待是 selenium 当中比较灵活的一种等待方式,他的实现原理其实是通过 while 循环不停的尝试需要进行的操作。
from selenium imp