我有一条if-else语句,其中:
条件1:ID匹配,并且某些字段是自动填充的。然后,if语句仅填充其余字段
条件2:ID不匹配,所有字段均为空白。 ELSE语句填充了所有内容
当我使条件1为真时,代码将运行If语句并正常工作。 当我使条件2为真时,代码再次运行If语句而不是else语句
我正在使用Selenium Java进行自动化。
我尝试为每个字段对象放置单独的if-else语句,我尝试了在if!= null,if!field.equals(null)之间交替。我也尝试过执行field.gettext(),将其分配给变量并检查variable.length!= 0。
if (driver.findElement(By.name("city")) != null) {
object.setField6;
object.setField7;
object.setField8;
object.setField9;
} else {
object.setField2;
object.setField3;
object.setField4;
object.setField5;
object.setField6;
object.setField7;
object.setField8;
object.setField9;
}
我为if语句选择了一个随机地址字段。
if (cityField != null) {
Only fill the three remaining fields
} else {
Fill all 8 fields (i.e. including address fields)
}
运行此命令并输入有效的ID号时,if语句可以正常工作。但是,当我放置一个无效的ID(使“ cityField”为空)时,将执行if语句而不是“ else”语句,并且仅填充3个字段而不是全部8个字段。
这是我在每个字段的对象方法中要做的所有事情:
method() {
city.click();
city.sendKeys(cityName);
}
答案 0 :(得分:0)
if (driver.findElements(By.name("city")).size() > 0) {
object.setField6;
object.setField7;
object.setField8;
object.setField9;
} else {
object.setField2;
object.setField3;
object.setField4;
object.setField5;
object.setField6;
object.setField7;
object.setField8;
object.setField9;
}
或者,您可以
try {
driver.findElement(By.name("city"));
object.setField6;
object.setField7;
object.setField8;
object.setField9;
} catch(WebDriverException wde)
{
object.setField2;
object.setField3;
object.setField4;
object.setField5;
object.setField6;
object.setField7;
object.setField8;
object.setField9;
}