当我执行脚本时,总是第一个条件被执行。即便是 脚本值得第二条件。
if (driver.findElement(By.id("jSuccess")).isDisplayed())
{
driver.findElement(By.id("jSuccess")).click();
System.out.println("Clockedin Successfully....");
}
else if (driver.findElement(By.id("jError")).isDisplayed())
{
driver.findElement(By.id("jError")).click();
System.out.println("User already clockedin");
// ul.getclockout().click();
}
答案 0 :(得分:2)
我认为您写的是 loop
而不是 condition
您可以在size
上尝试findElements
功能
此外,由于您使用了if
和else if
,所以只有其中一个会执行
if (driver.findElements(By.id("jSuccess")).size()>0) {
driver.findElement(By.id("jSuccess")).click();
System.out.println("Clockedin Successfully....");
}
else if (driver.findElements(By.id("jError")).size()>0) {
driver.findElement(By.id("jError")).click();
System.out.println("User already clockedin");
// ul.getclockout().click();
}
//如果要根据条件评估执行两个语句,则可以通过删除else
if (driver.findElements(By.id("jSuccess")).size()>0) {
driver.findElement(By.id("jSuccess")).click();
System.out.println("Clockedin Successfully....");
}
if (driver.findElements(By.id("jError")).size()>0) {
driver.findElement(By.id("jError")).click();
System.out.println("User already clockedin");
// ul.getclockout().click();
}
答案 1 :(得分:0)
您正在使用if-else
语句。如果if
条件为true,则else
将不会得到评估。如果您希望同时评估两者,请删除else
并仅使用两个if
。
想要这样的声音...
if (driver.findElement(By.id("jSuccess")).isDisplayed())
{
driver.findElement(By.id("jSuccess")).click();
System.out.println("Clocked in Successfully....");
}
if (driver.findElement(By.id("jError")).isDisplayed())
{
driver.findElement(By.id("jError")).click();
System.out.println("User already clocked in");
}