原文:https://www.cnblogs.com/lgh344902118/p/6015593.htmlhtml
webdriver三种等待方法web
1.使用WebDriverWait数组
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0 from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0 driver = webdriver.Firefox() driver.get("http://somedomain/url_that_delays_loading") try: element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement"))) finally: driver.quit()
presence_of_element_located能够替换为dom
By.ID中的ID可替换为'CLASS_NAME', 'CSS_SELECTOR', 'ID', 'LINK_TEXT', 'NAME', 'PARTIAL_LINK_TEXT', 'TAG_NAME', 'XPATH'ui
二、隐式等待,至关于设置全局的等待,在定位元素时,对全部元素设置超时时间。url
隐式等待使得WebDriver在查找一个Element或者Element数组时,每隔一段特定的时间就会轮询一次DOM,若是Element或数组没有立刻被发现的话。spa
默认设置是0。code
一旦设置,这个隐式等待会在WebDriver对象实例的整个生命周期起做用。htm
from selenium import webdriver driver = webdriver.Firefox() driver.implicitly_wait(10) # seconds driver.get(http://www.xxx.com) myDynamicElement = driver.find_element_by_id("ElementID")
三、强制等待对象
import time time.sleep(10)