2

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

4

1 回答 1

1

对您的问题的一个字答案将是Yes

解释

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

  • presence: 元素存在于页面的 DOM 中。
  • visibility: 元素存在于页面的 DOM 中并且可见。
  • interactable(ie clickable) : 元素可见且已启用,因此您可以单击它。

当 Selenium 默认加载网页/url 时,它遵循默认配置pageLoadStrategy设置为normal. 您可以选择不等待完整的页面加载。因此,为了避免等待整个网页加载,您可以配置pageLoadStrategy. pageLoadStrategy支持 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")

您可以在How to make Selenium not wait until full page load, which has a slow script?中找到详细讨论?

于 2018-07-19T08:47:55.903 回答