原文: https://pythonbasics.org/selenium_wait_for_page_to_load/

等待页面加载 Python Selenium。 在本文中,您将学习如何做到这一点。 这有点违反直觉。

Selenium 可让您自动执行浏览器,但不需要time.sleep即可等待页面加载完成。 实际上,它的工作方式与您预期的不同。

示例

Selenium 等待页面加载

下面的代码块向您展示了如何等待页面加载完成。 它使用超时。 它等待元素显示在页面上(您需要一个元素 ID)。

然后,如果页面已加载,则显示页面已加载。 如果超过了超时时间(以秒为单位),它将显示超时错误。

  1. from selenium import webdriver
  2. from selenium.common.exceptions import TimeoutException
  3. from selenium.webdriver.support.ui import WebDriverWait
  4. from selenium.webdriver.support import expected_conditions as EC
  5. from selenium.webdriver.common.by import By
  6. driver = webdriver.Firefox()
  7. driver.get('https://pythonbasics.org')
  8. timeout = 3
  9. try:
  10. element_present = EC.presence_of_element_located((By.ID, 'main'))
  11. WebDriverWait(driver, timeout).until(element_present)
  12. except TimeoutException:
  13. print("Timed out waiting for page to load")
  14. finally:
  15. print("Page loaded")

Selenium 等待页面加载 - 图1

下载示例