У меня есть оператор if-else, где:
условие 1: совпадения идентификатора и некоторые поля заполняются автоматически.Тогда оператор if заполняет только оставшиеся поля
условие 2: идентификатор не совпадает, все поля пусты.Инструкции ELSE заполняют их все
Когда я выполняю условие 1, код выполняется, если оператор If работает правильно.Когда я выполняю условие 2, код снова запускает то, что должен делать оператор If, а не оператор else
. Я использую Selenium Java для автоматизации.
Я попытался поместить отдельный if-elseоператоры для каждого объекта поля, я попытался чередовать между if! = null, если! field.equals (null).Я также попытался сделать field.gettext (), присвоить его переменной и проверить переменную.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)
}
Когда я запускаю это и устанавливаю правильный идентификатор, оператор if работает правильно.Но когда я помещаю недопустимый идентификатор, который оставляет значение «cityField» пустым, оператор if выполняется вместо оператора «else» и заполняет только 3 поля вместо всех 8.
Это все, что я делаю внутриметоды объекта для каждого поля:
method() {
city.click();
city.sendKeys(cityName);
}