1

我遇到了 Selenium Firefox 驱动程序的问题,有时某种谷歌广告会卡住加载。我只需单击刷新按钮即可完成此操作,页面将完全加载,我可以读取所需的数据并移至下一页。如果我不手动单击刷新,它最终会以默认超时时间超时,但这需要几分钟。

这当然不理想,我希望我能自动处理这种情况。

我尝试手动更改超时时间并添加一个 Try Catch 块,如下所示

    FirefoxDriver driver = new FirefoxDriver();
    WebDriverWait wait = new WebDriverWait(driver, 30);
    FixturesDataStore fixtures = new FixturesDataStore();
    driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

    for(int i = 0; i < fixtures.getHomeTeams().size(); i++)
    {
        try
        {
        driver.navigate().to(FORMURL.concat( (fixtures.getHomeTeams().get(i)).replace( ' ', '+' )));
        }catch(WebDriverException e)
        {
            System.out.println("What a catch!!");
            driver.navigate().refresh();
        }

错误是:

Exception in thread "main" org.openqa.selenium.TimeoutException: Timeout loading page after 10000ms

它突出了这条线

driver.navigate().refresh();

导致错误。

4

1 回答 1

0

结果几乎符合预期并符合规范。

此错误消息...

Exception in thread "main" org.openqa.selenium.TimeoutException: Timeout loading page after 10000ms

...是pageLoadTimeout()您配置为的结果:

driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

有关异常原因的详细分析,您始终可以捕获WebDriverException您可以在 Selenium not working 的 pageLoadTimeout 中找到详细讨论。


奥特罗

如果加载时间过长,如何使 selenium 重新加载所需的 url

于 2019-08-26T14:46:22.023 回答