selenium三大等待
等待的作用:
1)提高自动化运行的成功率;
2)自动化是由机器来进行的操纵,将手工测试所执行的内容转化为机器执行;
3)在指定的地方进行等待,以便相应系统响应,再继续进行。
等待的三大方式:
- 隐式等待
隐藏起来的等待,一次设置,终身有效,针对当下的webdriver对象进行的等待。
'''
作用:对webdriver对象设置全局等待,每一次操作,如遇到页面加载,则默认进入隐式等待;如遇到元素无法找到,则进入隐式等待。
优势:设置一次即可,而且不会报错
劣势:必须等待页面加载完成才会进入后续操作,或者等待超时再进入后续的操作。
'''
driver.implicitly_wait(10)
- 显式等待:
'''
优势:专门用于对指定的某一个元素进行等待;
劣势:必须声明,只对单次有效,复杂程度相对其他等待而言更高,当多个等待被一同调用的时候,系统的等待时间取决于最长的等待时间。
'''
from selenium.webdriver.suport.wait import WebDriverWait
WebDriverWait(driver,10,0.5).until(lambda el: driver.find_elelment_by_xpath('//*[@id='1']/h2/a'))
- 强制等待
'''
作用:当代码运行到强制等待这一行的时候,无论出现什么情况,都强制性等待指定的时间,需要通过time模块中的sleep进行导入来使用。
'''
from time import sleep
#强制等待三秒
sleep(3)