如何在元素通过 Selenium 和 Python 在 HTML DOM 中呈现之前与元素交互

How to interact with an element before it is rendered within the HTML DOM through Selenium and Python

是否可以请求 URL 并在页面呈现之前检查元素? 我正在使用 Python + 硒。

您的问题的单字答案为

说明

通常网页上的每个 WebElement 都有 3(三)种不同的状态,如下所示:

  • presence: 元素出现在页面的 DOM 上。
  • visibility: 元素出现在页面的 DOM 并且可见。
  • interactable(即 clickable:元素可见并已启用,您可以单击它。

当 Selenium 默认加载 webpage/url 时,它遵循默认配置 pageLoadStrategy 设置为 normal。您可以选择不等待完整的页面加载。因此,为避免等待完整网页加载,您可以配置 pageLoadStrategypageLoadStrategy支持3种不同的值如下:

  1. normal(完整页面加载)
  2. eager(互动)
  3. none

这是配置 pageLoadStrategy 的示例代码块:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities().FIREFOX.copy()
caps["pageLoadStrategy"] = "none"
driver = webdriver.Firefox(desired_capabilities=caps, executable_path=r'C:\path\to\geckodriver.exe')
driver.get("http://google.com")

您可以在

中找到详细的讨论