显示等待
针对某一元素进行查找,规定时间内找不到就报错(单一元素)
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
from selenium import webdriver
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.Chrome()
driver.get("http://www.baidu.com")
element = WebDriverWait(driver, 10, 0.5).until(
EC.presence_of_element_located((By.ID, "sa"))
)
element.send_keys('saaa')
timeout :响应时间(秒)
poll_frequency :检测的间隔(默认0.5秒)
ignored_exceptions :抛出异常
unitl():返回值True
unitl_not():返回值False
隐式等待
对要查找的全部元素进行等待,规定时间内加载完毕就通过
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from time import ctime
driver = webdriver.Chrome()
driver.implicitly_wait(5)//时间设为5秒
driver.get("http://www.baidu.com")
try:
print(ctime())
driver.find_element_by_id("kw").send_keys('asss')
except NoSuchElementException as exc:
print(exc)
finally:
print(ctime())
implicitly_wait()隐式等待时间
可以看见5秒。