常见的有三种方法:
一、 死等
import time
time.sleep(10) 以秒为单位
二、Implicit Waits(隐式等待)
driver = webdriver.Firefox()
driver.implicitly_wait(10)#单位秒
driver.get('http://www.baidu.com')整个页面都有效 一个py文件写一个即可
三、显示等待
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
#显示等待
locator
=
(By.ID,
'kw'
)
element = WebDriverWait(driver,5,0.5).until(ec.presence_of_all_elements_located((By.ID,"kw"))) #可换为locator
driver.find_element_by_id("kw").send_keys("selenium")
driver: 传入WebDriver实例,即我们上例中的driver
timeout: 超时时间,等待的最长时间(同时要考虑隐性等待时间)
poll_frequency: 调用until或until_not中的方法的间隔时间,默认是
0.5
秒
ignored_exceptions: 忽略的异常,如果在调用until或until_not的过程中抛出这个元组中的异常,则不中断代码,继续等待,如果抛出的是这个元组外的异常,则中断代码,抛出异常。默认只有NoSuchElementException。
until
method: 在等待期间,每隔一段时间调用这个传入的方法,直到返回值不是
False
message: 如果超时,抛出TimeoutException,将message传入异常
until_not 与until相反,until是当某元素出现或什么条件成立则继续执行,until_not是当某元素消失或什么条件不成立则继续执行,参数也相同,
driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
作者:半个王国
链接:http://www.jianshu.com/p/bf27aad96614
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
作者:半个王国
链接:http://www.jianshu.com/p/bf27aad96614
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
作者:半个王国
链接:http://www.jianshu.com/p/bf27aad96614
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
作者:半个王国
链接:http://www.jianshu.com/p/bf27aad96614
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
作者:半个王国
链接:http://www.jianshu.com/p/bf27aad96614
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get("http://somedomain/url_that_delays_loading") myDynamicElement = driver.find_element_by_id("myDynamicElement")
作者:半个王国
链接:http://www.jianshu.com/p/bf27aad96614
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。