如何在元素通过 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
。您可以选择不等待完整的页面加载。因此,为避免等待完整网页加载,您可以配置 pageLoadStrategy
。 pageLoadStrategy
支持3种不同的值如下:
normal
(完整页面加载)
eager
(互动)
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")
您可以在
中找到详细的讨论
是否可以请求 URL 并在页面呈现之前检查元素? 我正在使用 Python + 硒。
您的问题的单字答案为是。
说明
通常网页上的每个 WebElement 都有 3(三)种不同的状态,如下所示:
presence
: 元素出现在页面的 DOM 上。visibility
: 元素出现在页面的 DOM 并且可见。interactable
(即clickable
):元素可见并已启用,您可以单击它。
当 Selenium 默认加载 webpage/url 时,它遵循默认配置 pageLoadStrategy
设置为 normal
。您可以选择不等待完整的页面加载。因此,为避免等待完整网页加载,您可以配置 pageLoadStrategy
。 pageLoadStrategy
支持3种不同的值如下:
normal
(完整页面加载)eager
(互动)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")
您可以在