我创建了代码:
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;
}
}
);
“else if”之后的代码永远不会执行。我怎样才能使正确的ExpectedCondition具备上述两个条件?
答案 0 :(得分:3)
如果需要同时满足这两个条件,则return
。if
块中不能else 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;
}
}
);