selenium等待三种等待
selenium分三种等待方式,分别是sleep,implicitly_wait,WebDriverWait三种
1.显性等待
意思是:隔一段时间timeout看一次,条件成立,继续运行,否则抛出TimeOutException异常
备注:用一次写一次
WebDriverWait(self,driver,timeout,poll_frequency=POLL_FREQUENCY,ignored_exceptions=None)
# coding=utf-8 from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait driver=webdriver.Chrome() driver.get("http://www.baidu.com") WebDriverWait(driver,10).until(lambda driver : driver.find_element_by_id("kw")).send_keys("python")
2.强制等待
这是Python中自带的,不管元素是否加载完成后,sleep(x),继续执行
# coding=utf-8 from selenium import webdriver from time import sleep driver=webdriver.Chrome() driver.get("http://www.baidu.com") sleep(2) # 强制等待2s driver.find_element_by_id("kw").send_keys("python")
3.隐性等待
implicitly_wait(x) 等待x秒,不管有没有加载,继续执行
备注:全局的,只需要写一次
# coding=utf-8 from selenium import webdriver driver=webdriver.Chrome() driver.get("http://www.baidu.com") driver.implicitly(30) # 隐性时间最长为30s driver.find_element_by_id("kw").send_keys("python")