#java #selenium
#java #selenium
Вопрос:
Вот скриншот моего приложения:
У меня есть логический ввод, который принимает два значения, True и False. Перед загрузкой данных ввод принимает значение False, а после загрузки данных ввод принимает значение True.
Я хочу начать свой тест, когда этот ввод равен True.
Я теряюсь между неявным и явным плавным ожиданием.
Вот код, который я пробовал:
WebElement dataloaded
public String getDataLoaded(){
dataLoaded=driver.findElement(By.id("dataLoaded"));
return dataLoaded.getText();
}
который я вызываю здесь:
if(searchUser.getDataLoaded() == "true"){
for (SearchCriteria searchWord : loadSearchCriteriaStepDfn.data) {
searchUser.refresh();
searchUser.Search(searchWord.getSearchCriteria());
//TODO Replace 1000 value by an output from selenium
// Thread.sleep(1000);
softAssert.assertEquals(searchUser.count(),searchUser.Nbr_Of_raws());
softAssert.assertEquals(searchUser.count(),searchWord.getCount());
}
}
}
Комментарии:
1. Это полезно, если вы публикуете код, который вы пробовали
2. перепроверьте вопрос, я добавлю больше деталей, а также код
Ответ №1:
Проблема может быть в вашем сравнении строк.
if(searchUser.getDataLoaded() == "true")
В Java вы сравниваете строки с этим equals
методом.
См. https://www.w3schools.com/java/ref_string_equals.asp
Попробуйте выполнить это со следующим кодом:
if("true".equals(searchUser.getDataLoaded()))
К вашему сведению, я поставил строку «true» впереди, чтобы предотвратить исключения нулевого указателя, которые могут возникнуть, если вы getDataLoaded
должны вернуть a null
.
Комментарии:
1. Это лучший, более полный ответ.
Ответ №2:
Попробуйте заменить это
if(searchUser.getDataLoaded() == "true")
с помощью этого
if(searchUser.getDataLoaded().equals("true"))