Запуск теста Selenium, если входное значение == true

#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"))