time.sleep(3)固定等待3秒
driver.implicitly_wait(10)隐性的等待,对应全局
WebDriverWait( driver, timeout).until(‘有返回值的__call__()方法或函数’)显性的等待,对应到元素
一、time.sleep(seconds) 固定等待
import timetime.sleep(3) #等待3秒
time.sleep(seconds) seconds #参数为整数,单位(秒)。
它是Python的time提供的休眠方法。
常用于短时间的等待,为了自动测试用例的执行效率固定等待的时间需要控制在3秒内。在用例中尽量少用固定等待。
二、智能隐性的等待implicitly_wait(回应超时等待)
driver.implicitly_wait(time_to_wait)
#回应超时等待,隐性的,设置后对应的是全局,如查找元素。
driver.implicitly_wait(10) # 设置全局隐性等待时间,单位秒
每次driver执行 找不到元素都会等待设置的时间,它的值设置的过长对用例执行效率有很大的影响,必须在执行完成之后还原回来。driver.implicitly_wait() 要慎之又慎的使用。
driver对它的默认值为0,driver.implicitly_wait(0)能还原隐性等待的设置时间。
三、智能显性等待WebDriverWait
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
参数说明:
driver为webdriver驱动timeout最长超时时间,单位(秒)
poll_frequency循环查找元素每次间隔的时间,默认0.5秒
ignored_exceptions超时后需要输出的异常信息
WebDriverWait()下面有两个方法可用until()和until_not()
WebDriverWait(driver, timeout).until(method, message='')
method 函数或者实例__call__()方法返回True时停止,否则超时后抛出异常。
参数说明:
method 在等待时间内调用的方法或者函数,该方法或函数需要有返回值,并且只接收一个参数driver。m