六 Selenium4+Python3系列 - Selenium的三种等待,强制等待、隐式等待、显式等待( 二 )

检测的间隔步长,默认为0.5s
ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常 。
3.2、until()和until_not()的方法until

  • WebDriverWait(driver,10).until(method,message="")
  • 调用该方法提供的驱动程序作为参数,直到返回值为True
method: 在等待期间,每隔一段时间(__init__中的poll_frequency)调用这个传入的方法,直到返回值不是False
message: 如果超时,抛出TimeoutException,将message传入异常
until_not
  • WebDriverWait(driver,10).until_not(method,message="")
  • 调用该方法提供的驱动程序作为参数,直到返回值为False
与until相反,until是当某元素出现或什么条件成立则继续执行,until_not是当某元素消失或什么条件不成立则继续执行,参数也相同 。
3.3、expected_conditions类各种类,达到某种条件,返回True和False,详细参考下表 。
六 Selenium4+Python3系列 - Selenium的三种等待,强制等待、隐式等待、显式等待

文章插图
3.4、显示等待,自定义等待条件示例代码如下:
# 设置等待wait = WebDriverWait(driver, 10, 0.5)# 使用匿名函数element = wait.until(lambda diver: driver.find_element(By.ID, 'green_box'))print(element.text)driver.quit()写在最后其实隐式等待和显示等待在本质上是一致的,只是显示等待多了一个指定元素条件超时时间,在使用场景上,可以使用隐式等待来做一个全局的控制,例如设置全局隐式等待6秒;
如果某个控件比较特殊,需要更长的时间加载,比如十几秒或者更长,就可以使用显示等待对其进行单独处理;
参考文章:
https://blog.csdn.net/qq_36821826/article/details/115668538

经验总结扩展阅读