硒与无头铬不等待javascript

时间:2020-04-29 17:16:26

标签: java selenium selenium-chromedriver

我正在尝试从网站中提取各种信息。该网站使用Javascript,可让您在地图上搜索一系列地址。我要做的是:1)在文本框中输入文本2)按下搜索按钮3)等待地址列表和地图更新(Gmaps)4)从列表中提取数据当我使用Selenium和chrome(普通版),一切正常。对于第3点,要等到页面完全加载后,我才使用以下代码块:

public void waitForLoading() {
    ExpectedCondition<Boolean> pageLoadCondition = new ExpectedCondition<Boolean>() {
        public Boolean apply(WebDriver driver) {
            boolean condition = ((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete");
            System.out.println(condition);
            return condition;
        }
    };
    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(pageLoadCondition);
}

当我无头使用Chrome浏览器时,使用完全相同的代码,硒不会等待。点3始终被评估为true,即,即使未加载列表,上述函数也始终返回true。我发现的唯一解决方案是使用Thread.sleep(),但这不是最好的解决方案,而且很奇怪第一个解决方案不起作用

有人可以帮助我了解如何解决该问题吗?

0 个答案:

没有答案
相关问题