Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在selenium中的Fluentwait.until中使用java.util.function? FluentWait wait2=新的FluentWait(表) .带超时(10,时间单位。秒) .pollingEvery(500,时间单位为毫秒) .忽略(NoSuchElementException.class); wait2.until(新函数(){ @凌驾 公共布尔应用(WebElement t){ //TODO自动生成的方法存根 返回true; }_Java_Selenium - Fatal编程技术网

如何在selenium中的Fluentwait.until中使用java.util.function? FluentWait wait2=新的FluentWait(表) .带超时(10,时间单位。秒) .pollingEvery(500,时间单位为毫秒) .忽略(NoSuchElementException.class); wait2.until(新函数(){ @凌驾 公共布尔应用(WebElement t){ //TODO自动生成的方法存根 返回true; }

如何在selenium中的Fluentwait.until中使用java.util.function? FluentWait wait2=新的FluentWait(表) .带超时(10,时间单位。秒) .pollingEvery(500,时间单位为毫秒) .忽略(NoSuchElementException.class); wait2.until(新函数(){ @凌驾 公共布尔应用(WebElement t){ //TODO自动生成的方法存根 返回true; },java,selenium,Java,Selenium,我有这个代码,我需要检查多个条件内申请过时(不包括在这里),ExpectedCondition没有工作 这段代码给了我一个错误提示 FluentWait<WebElement> wait2= new FluentWait<WebElement>(table) .withTimeout(10, TimeUnit.SECONDS) .pollingEvery(500, TimeUnit.MILLISECONDS)

我有这个代码,我需要检查多个条件内申请过时(不包括在这里),ExpectedCondition没有工作

这段代码给了我一个错误提示

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;
        }
wait2.until(新函数()
FluentWait类型中的方法until(谓词)不适用于参数(new Function(){})

我无法理解这个问题,直到有两种方法:

wait2.until(new Function<WebElement,Boolean>()

public V直到(Function使其工作,Fluentwait中使用的函数是

public void until(final Predicate<T> isTrue)
它不起作用,因为我以前使用过java.util.function

我尝试了WebDriverWait而不是FluentWait,它对我很有效

WebDriverWait wait=newwebdriverwait(驱动程序,60);
wait.withTimeout(60,TimeUnit.SECONDS);
等待。轮询间隔(5,时间单位。秒);
忽略(NoSuchElementException.class);
等待.直到(新的ExpectedCondition(){
@凌驾
公共布尔应用(WebDriver驱动程序){
WebElement ele=driver.findElement(定位器);
if(ele==null)
返回false;
其他的
{
System.out.println(“找到的WebElement”);
返回true;
}     
}
});

从这个页面上,我看到新的selenium库已经删除了
com.google.common.base.Function
,但开始使用
import java.util.Function.Function;
,这发生在2017年1月23日 见附注:

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;
    }     
}
});
见本页:

同样从官方的Guava库中,我看到在Guava21.0中,它确实有
扩展java.util.Function
请注意这个变化

com.google.common.base.Function
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;
    }     
}
});
Update Wait and FluentWait for Java 8
With recent guava release, the Google versions of both
Function and Predicate extend the Java 8 equivalents &
so it's safe for us to make this move. Probably.