selenium三种等待时间设置方式
为了保证脚本的稳定性,有时候需要引入等待时间,等待页面加载元素后再进行操作,selenium提供三种等待时间设置方式。
1、sleep():固定休眠时间设置
import time
time.sleep(1)
2、implicitlyWait() :隐式等待、全局等待
机制:每隔500毫秒在界面进行一次检查 检查到了就不等待了 在规定的时间内检查不到就会报错
driver.implicitly_wait(4)
3、WebDriverWait():显示等待
语法格式如下:
WebDriverWait(driver,timeout,poll_frequency=0.5,ignore_exceptions=None)
driver:WebDriver的驱动程序(IE,火狐,谷歌或远程)
timeout:最长超时时间,默认以秒为单位
poll_frequency:休眠时间的间隔(步长)时间,默认为0.5秒(即每500毫秒扫描一次页面)
ignore_exceptions:超时后的的异常信息,默认情况下抛NoSuchElementException异常
#显示等待 比较难写
# poll_frequency 间隔检查时间 根据设置的时间 检查一次 默认是500毫秒检查一次
from selenium.webdriver.support.wait import WebDriverWait
driver_wait=WebDriverWait(driver,20,poll_frequency=1)
element=driver_wait.until(lambda x:x.find_element(By.XPATH,'//div'))
print(element.get_attribute('class'))