等到元素未找到或隐藏

时间:2013-04-26 11:20:19

标签: java selenium

我想等待我的线程,直到元素不存在或隐藏。尝试像这样的代码

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

2 个答案:

答案 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>()