1、应用场景:
页面跳转时,需要等待新网页里的元素能被定位到才继续操作,还有一些业务,步骤之间本身存在等待的需求,必须等待自动跳转网页才能进行下一步操作。
2、有三种等待方式:
有三种等待方式,分别是:强制等待、隐性等待、显性等待。
1)强制等待:强制等待固定的时间,使用Python语言提供的time模块里的sleep函数,参数是以秒为单位的固定时间数。
说明:必须提前导入time模块里的sleep,语法 from time import sleep,然后才能调用sleep函数,示例sleep(5)就可以等待5秒。
2)隐性等待:步骤所有定位元素的操作步骤都会在暂时找不到元素时默认做等待,只要在此超时时间内,能等待到元素出现,就可以继续操作,如果到达超时时间,仍未定位到,代码才运行错误(抛出NoSuchElementException的异常代表定位失败)。
隐形等待一般在启动浏览器之后设置
driver.implicitly_wait(10)
3)显性等待:Selenium WebDriver设计者单独设计的显式等待功能,我们使用设计好的WebDriverWait类里提供的until函数来等待特定条件成立或使用until_not函数等待特定条件不成立为止。功能最强大 ,也是最灵活的等待方式,但是需要书写一段代码来实现等待,例如可以等待一个弹出框出现、一个元素里文本变为预期文本、网页标题变为包含某文本、等待元素出现(能定位到)、等待一个按钮从灰色变为可用、等待一个复选框变为被选中的状态……。