gpt4 book ai didi

java - 无法在 selenium 中使用显式(流畅)等待来定位动态加载的弹出窗口

转载 作者:行者123 更新时间:2023-11-30 02:10:30 28 4
gpt4 key购买 nike

我无法找到我们网站上动态显示的弹出窗口。最初该元素处于以下 html 状态:

<div class="notification_container" style = "display: none; overflow: hidden; float: none"
</div>

使用jquery的show和hide,div显示5秒,稍后隐藏。

在我的 Selenium 脚本中,我尝试使用以下语句等待样式属性从“display: none”更改为“display: block”:

wait.until(ExpectedConditions.attributeContains(By.className("notification_container"), "style", "display: block"));

下面是我流畅的等待声明:

    public void waitForElement(Wait<WebDriver> wait) {
try {
if (wait == null) {
this.wait = new FluentWait<WebDriver>(myBrowser)
// Timeout time is set to 60
.withTimeout(60, TimeUnit.SECONDS)
// polling interval
.pollingEvery(100, TimeUnit.MILLISECONDS)
// ignore the exception
.ignoring(NoSuchElementException.class, ElementNotVisibleException.class);
}
} catch (Exception e) {
System.out.println(+e.getMessage());
}
}

但是,我遇到以下异常:

org.openqa.selenium.TimeoutException: Expected condition failed: waiting for value to contain "display: block;". Current value: "null" (tried for 60 second(s) with 100 MILLISECONDS interval)

注意:此外,我尝试结合预期条件使用以下方法:

  1. 属性ToBe
  2. elementToBeClickable
  3. 存在元素定位
  4. 元素位置的可见性

所有这些都因超时异常而失败。任何帮助/指向正确方向的帮助将不胜感激。

最佳答案

我建议您不要等待特定的属性,而只是等待该元素可见......这基本上就是您想要做的事情。它已在 ExpectedConditions 中提供。

wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("notification_container"));

关于java - 无法在 selenium 中使用显式(流畅)等待来定位动态加载的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257535/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com