是否可以在页面呈现之前请求一个 URL 并检查元素?我正在使用 Python + Selenium。
问问题
304 次
1 回答
1
对您的问题的一个字答案将是Yes。
解释
通常,网页上的每个WebElement都有 3(三)个不同的状态,如下所示:
presence
: 元素存在于页面的 DOM 中。visibility
: 元素存在于页面的 DOM 中并且可见。interactable
(ieclickable
) : 元素可见且已启用,因此您可以单击它。
当 Selenium 默认加载网页/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")
您可以在How to make Selenium not wait until full page load, which has a slow script?中找到详细讨论?
于 2018-07-19T08:47:55.903 回答