【问题标题】:Java Selenium - Bypass driver.get() waiting timeJava Selenium - 绕过 driver.get() 等待时间
【发布时间】:2021-05-05 14:38:30
【问题描述】:

我正在尝试使用 Selenium WebDriver 访问网站,但该网站将继续加载,尽管我仍然可以与之交互。 (如果您想知道,该网站是nitrotype.com。)我认为这是因为driver.get() 等到页面完全加载。我可以绕过这个直到只加载某个元素吗?

TL;DR 如何绕过driver.get() 等待站点完全加载后再继续?

【问题讨论】:

  • website will keep loading 是什么意思?我试过了,可以马上与之互动。
  • 网站将继续加载,但您可以在加载完成之前与其进行交互。

标签: java selenium selenium-webdriver webdriver


【解决方案1】:

查看页面加载策略:https://www.selenium.dev/documentation/en/webdriver/page_loading_strategy/ Normal、Eager & None 是您的选择。我建议您将您的策略​​与适当的显式等待结合起来。

正常

normal 这会使 Selenium WebDriver 等待整个页面 已加载。当设置为 normal 时,Selenium WebDriver 等待直到加载 返回事件火。

默认情况下,如果没有提供,则将 normal 设置为浏览器。

渴望

eager 这将使 Selenium WebDriver 等到初始 HTML 文档已完全加载并解析,并丢弃加载 样式表、图像和子框架。

当设置为 eager 时,Selenium WebDriver 会等到 DOMContentLoaded 返回事件火。

none 当设置为 none 时 Selenium WebDriver 只等到初始 页面已下载。

实施:

public class pageLoadStrategy {
    public static void main(String[] args) {
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.setPageLoadStrategy(PageLoadStrategy.NONE);
        WebDriver driver = new ChromeDriver(chromeOptions);
        try {
            // Navigate to Url
            driver.get("https://google.com");
        } finally {
            driver.quit();
        }
    }
}

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 2012-05-11
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多