FluentWait<WebElement> wait2= new FluentWait<WebElement>(table)
.withTimeout(10, TimeUnit.SECONDS)
.pollingEvery(500, TimeUnit.MILLISECONDS)
.ignoring(NoSuchElementException.class);
wait2.until(new Function<WebElement,Boolean>(){
@Override
public Boolean apply(WebElement t) {
// TODO Auto-generated method stub
return true;
}
我有这个代码,我需要检查申请过时的多个条件(这里没有包含),ExpectedCondition没有用。
此代码在
上给出了错误wait2.until(new Function<WebElement,Boolean>()
FluentWait类型中的(Predicate)方法不适用于参数(new Function(){})
我无法理解这个问题,直到有两种方式:
public <V> V until(Function<? super T, V> isTrue)
和
public void until(final Predicate<T> isTrue)
如果有人可以帮助我理解这个问题吗?
答案 0 :(得分:1)
让它工作,Fluentwait中使用的函数是
com.google.common.base.Function
它没有用,因为我之前使用过java.util.function。!!
答案 1 :(得分:0)
我尝试使用WebDriverWait而不是FluentWait,它对我有用。
WebDriverWait wait = new WebDriverWait(Driver, 60);
wait.withTimeout(60, TimeUnit.SECONDS);
wait.pollingEvery(5, TimeUnit.SECONDS);
wait.ignoring(NoSuchElementException.class);
wait.until(new ExpectedCondition<Boolean>(){
@Override
public Boolean apply(WebDriver driver) {
WebElement ele=driver.findElement(locator);
if(ele==null)
return false;
else
{
System.out.println("WebElement found");
return true;
}
}
});