作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法找到我们网站上动态显示的弹出窗口。最初该元素处于以下 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)
注意:此外,我尝试结合预期条件使用以下方法:
所有这些都因超时异常而失败。任何帮助/指向正确方向的帮助将不胜感激。
最佳答案
我建议您不要等待特定的属性,而只是等待该元素可见......这基本上就是您想要做的事情。它已在 ExpectedConditions
中提供。
wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("notification_container"));
关于java - 无法在 selenium 中使用显式(流畅)等待来定位动态加载的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50257535/
我是一名优秀的程序员,十分优秀!