我想等待我的线程,直到元素不存在或隐藏。尝试像这样的代码
new WebDriverWait(driver, TIME_OUT_SECS).until(new ExpectedCondition<WebElement>() {
@Override
public Boolean apply(WebDriver d) {
return !d.findElement(by).isDisplayed();
}
});
但是收到错误
attempting to use incompatible return type
答案 0 :(得分:1)
可能只是一个自动装箱失败 - 你试图改变
return !d.findElement(by).isDisplayed();
到
return (Boolean)!d.findElement(by).isDisplayed();
?因为isDisplayed会返回boolean
,但您实际上需要Boolean
应该自动生成,但关于自动装箱,您永远不会知道。
答案 1 :(得分:1)
您似乎在这里错误地使用了ExpectedCondition的输入:
new ExpectedCondition<WebElement>()
这应该创建一个带有方法
的类public WebElement apply(WebDriver arg0) {}
如您所见,apply()的预期返回类型是传递给type参数的类。
您可能想要这样做:
new ExpectedCondition<Boolean>()