页面等待
隐式等待:
调用driver.implicitly_wait 那么在获取不可用的元素之前,会等待10秒中的时间
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get(‘https:\\www.baidu.com’)
显示等待:
显示等待是表明某个条件成立才执行获取元素的才做、也可以等待的时候指定一个最大的时间,
如果超过这个时间那么就会抛出一个异常(exceptions.TimeoutException)。
显示等待是应该使用 selenium.webdriver.support.excepted_conditions期望的条件和
selenium.webdriver.support.ui.webDriverWait 来配合完成。
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait # 显示等待
# 设置等待执行语句
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
# driver.implicitly_wait(10) # 隐式等待
driver.get(r'http:\\www.douban.com')
try:
element = WebDriverWait(driver, 10).until(
# 位于...位置存在某个元素
# EC.presence_of_element_located((By.ID, 'form_email')) # 必须是元组
EC.text_to_be_present_in_element(
(By.XPATH, '//div[@class="main"]/div[@class="mod"]/h2[1]'),
'热点内容 • • • • • • ( 更多 )')
)
# element.send_keys('python')
print(element)
finally:
driver.quit()