1、sleep(): # 强制等待
执行 sleep()
后线程休眠
2、web_driver.implicitly_wait(10) # 隐式等待10秒,是设置的全局等待。
设置等待时间,是对页面中的所有元素设置加载时间,如果超出了设置时间的则抛出异常。在规定的时间范围内,浏览器在不停的刷新页面,直到找到相关元素或者时间结束。
3、WebDriverWait():# 显示等待,是针对于某个特定的元素设置的等待时间
在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s
,默认抛出异常为:NoSuchElementException
。
WebDriverWait()
语法格式如下:
WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None).until(self,method,message=)
WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None).until_not(self,method,message=)
具体解释:
# self, 函数本身,在实际使用的时候不需要输入
# driver, webdriver的驱动程序,如(IE、FireFox、chrome、safari等)
# timeout,超时时间,默认以秒为单位
# poll_frequency,休眠时间(步长)的间隔,默认为0.5秒,即检测元素是否存在的频率
# ignored_exceptions, 超时后的异常信息,默认情况下抛 “NoSuchElementException",大家可以定义忽略的异常信息
# WebDriverWait一般由until或until_not配合使用
until(method,message=")调用该方法提供的驱动程序做为一个参数,直到返回值不为False
until_not(method,message=")调用该方法提供的驱动程序做为一个参数,直到返回值为False