Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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
Java 如何在两个条件下正确执行WebDriverWait_Java_Selenium - Fatal编程技术网

Java 如何在两个条件下正确执行WebDriverWait

Java 如何在两个条件下正确执行WebDriverWait,java,selenium,Java,Selenium,我创建了代码: new WebDriverWait(driver,100).until( new ExpectedCondition<Boolean>(){ @Override public Boolean apply(WebDriver driver){ if(driver.findElement(byLogin).isDisplayed()){ System.out.printl

我创建了代码:

new WebDriverWait(driver,100).until(
    new ExpectedCondition<Boolean>(){

        @Override
        public Boolean apply(WebDriver driver){

            if(driver.findElement(byLogin).isDisplayed()){

                System.out.println("test1");
                return true;
            }
            else if(driver.findElement(byConc).isEnabled()){
                System.out.println("test1");
                driver.findElement(byShop).click();
                return true;
            }
            return false;
        }
    }
);
新的WebDriverWait(驱动程序,100)。直到(
新的ExpectedCondition(){
@凌驾
公共布尔应用(WebDriver驱动程序){
if(driver.findElement(byLogin.isDisplayed()){
System.out.println(“test1”);
返回true;
}
else if(driver.findElement(byConc.isEnabled()){
System.out.println(“test1”);
driver.findElement(byShop.click();
返回true;
}
返回false;
}
}
);

“else if”之后的代码永远不会执行。我如何才能使正确的预期条件同时满足上述两个条件?

如果需要满足这两个条件,则不能同时在
if
中使用
返回
。取而代之的是另一个
boolean
变量和可以从两个代码块覆盖的返回值

new WebDriverWait(driver,100).until(
    new ExpectedCondition<Boolean>(){
        boolean ind = false;

            @Override
            public Boolean apply(WebDriver driver){

                if(driver.findElement(byLogin).isDisplayed()){

                    System.out.println("test1");
                    ind = true;
                }
                else if(driver.findElement(byConc).isEnabled()){
                    System.out.println("test1");
                    driver.findElement(byShop).click();
                    ind = true;
                }
                else{
                    ind = false;
                }
                return ind;
            }
        }
);
新的WebDriverWait(驱动程序,100)。直到(
新的ExpectedCondition(){
布尔ind=false;
@凌驾
公共布尔应用(WebDriver驱动程序){
if(driver.findElement(byLogin.isDisplayed()){
System.out.println(“test1”);
ind=真;
}
else if(driver.findElement(byConc.isEnabled()){
System.out.println(“test1”);
driver.findElement(byShop.click();
ind=真;
}
否则{
ind=假;
}
返回ind;
}
}
);

有点不明白你的意思。如果元素同时显示和启用,是否希望该方法返回true。或者如果两者都不是真的,则返回false?是的,我有两个不同的元素,它们可以显示,但不必显示,当其中任何一个显示并启用时,则返回true,否则返回false