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