java - 使用 Selenium Webdriver 检测一段时间后是否找不到元素

标签 java selenium-chromedriver webdriverwait

我每隔几秒就会多次连接到一个网站,有时该网站会进入一个巨大的加载阶段,需要大约 5 分钟才能停止加载。当它最终停止时,它会抛出一个预期的 ElementNotFoundException ,然后我捕获该异常并从最后一点重新启动该过程。然而,我希望能够检测到这个加载阶段并尽快处理它,而不是等待 5 分钟让它结束。我尝试使用 FluentWait 实现和 WebDriverWait 实现,但到目前为止都不起作用。这是我尝试过的两种实现:

流畅等待:

private static WebElement fluentWait(final By locator, WebDriver driver) {
    Wait<WebDriver> wait = new FluentWait<>(driver)
            .withTimeout(10, TimeUnit.SECONDS)
            .pollingEvery(2, TimeUnit.SECONDS);
            //.ignoring(NoSuchElementException.class);

    return wait.until((Function<WebDriver, WebElement>) driver1 -> {
        assert driver1 != null;
        return driver1.findElement(locator);
    });
    }

WebDriver等待:

new WebDriverWait(driver,5).until(ExpectedConditions.presenceOfElementLocated(new By.ByCssSelector(someSelector)));

P.S:我正在使用 Selenium Webdriver,特别是 ChromeDriver()。这是网站进入巨大加载阶段时的外观图像 ->

screenshot

最佳答案

这不是值得担心的事情。您可以查看以下链接,希望这会有所帮助。

Selenium -- How to wait until page is completely loaded

Wait for page load in Selenium

关于java - 使用 Selenium Webdriver 检测一段时间后是否找不到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58694578/

相关文章:

java - 如何从 Azure Function java 发送 pdf 响应?

java - 如何从 Google App Engine 读取 RSS?获取 JDOM 无法创建 SAX 解析器

Python Selenium 测试。如何从 Google 主页搜索框中提取自动建议?

java - 在 selenium 中循环使用 driver.navigate().back() 时出现 StaleElementReferenceException 错误

python - 如何使用 Selenium 和 Python 处理 try 循环中的错误

java - 使一个类成为 Mockito 模拟而不调用模拟

Java - 选择复选框时的错误操作

java - 当 Selenium WebDriver.get() 加载的页面为空并弹出登录警报时,它会卡住

python - 如何通过Python使用Selenium从网页中提取文本$7.56

python - 有时可以点击按钮,有时却不起作用