自动化测试中,受网速,机器性能得到影响,需要查找的元素不会马上出现,此时就需要设置元素等待。
显示等待
通过对查找元素方法的封装并同时设置该元素的等待时间
方法:
WebDriverWait(driver,timeout=30,poll_frequency=0.5).until(lambda x: x.find_element(*loc))
实例操作方法:
#显示等待需要先导入WebDriverWait类
from selenium.webdriver.support.wait import WebDriverWait
#对查找元素方法进行封装并设置显示等待时间
def find_element(self,driver,loc,timeout=30,poll =0.05):
return WebDriverWait(driver,timeout=timeout,poll_frequency=poll).until(lambda x: x.find_element(*loc))
注:
对单个元素有效,通过封装的方法可实现全局有效
timeout:显示等待的时间
poll_frequency:频率,每隔多久查找一次
例子中,方法调用时不写就是默认30秒,0.05秒查找一次。
查找到元素后需要返回值
隐式等待
方法:
driver.implicitly_wait(等待时间)
注:
一经设置对所有元素生效
一般为前置必写代码