gpt4 book ai didi

java - Selenium 只执行循环的 if != null 部分,不运行循环的 "else if null "部分

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:21 28 4
gpt4 key购买 nike

我有一个 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);
}

最佳答案

 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;
}

关于java - Selenium 只执行循环的 if != null 部分,不运行循环的 "else if null "部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58043423/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com