一、强制等待sleep()
''' 设置固定休眠时间,单位为秒。 由python的time包提供, 导入 time 包后就可以使用。 缺点:不智能,使用太多的sleep会影响脚本运行速度。 ''' import time sleep(10) #等待10秒
二、隐式等待:implicitly_wait()
''' 由webdriver提供的方法,一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起作用, 它不针对某一个元素,是全局元素等待,即在定位元素时,需要等待页面全部元素加载完成,才会执行下一个语句。 如果超出了设置时间的则抛出异常。 ''' driver.implicitly_wait(10) #隐式等待10秒
需要特别说明的是:隐性等待对整个driver的周期都起作用,所以只要设置一次即可,有人把隐性等待当成了sleep在用,走哪儿都来一下…
三、显示等待:WebDriverWait()
from selenium.webdriver.support.wait import WebDriverWait WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None) ''' driver: 传入WebDriver实例,即我们上例中的driver timeout: 超时时间,等待的最长时间(同时要考虑隐性等待时间) poll_frequency: 调用until或until_not中的方法的间隔时间,默认是0.5秒 ignored_exceptions: 忽略的异常,如果在调用until或until_not的过