【问题标题】: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
    相关资源
    最近更新 更多