selenium-python-隐式等待与显示等待

页面等待

隐式等待:

调用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()

猜你喜欢

转载自blog.csdn.net/qq_27648991/article/details/81490623