1

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

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
4

2 回答 2

1

可能只是自动装箱失败-您是否尝试更改

return !d.findElement(by).isDisplayed();

return (Boolean)!d.findElement(by).isDisplayed();

? 由于 isDisplayed 返回boolean但您实际上需要Boolean应该被自动装箱,但关于自动装箱您永远不知道。

于 2013-04-26T11:31:41.770 回答
1

看来您在这里错误地使用了 ExpectedCondition 的输入:

new ExpectedCondition<WebElement>()

这应该创建一个带有方法的类

public WebElement apply(WebDriver arg0) {}

如您所见,apply() 的预期返回类型是传入类型参数的类。

你可能想做:

new ExpectedCondition<Boolean>()
于 2014-05-29T22:04:39.400 回答