Как проверить, отображается ли скрытый элемент или нет в селене

У меня есть поле ввода, которое принимает числа. Мне нужно ввести числа и проверить, отображается ли сообщение об ошибке или нет. Сообщение об ошибке появляется при вводе неверного номера. Мне также нужно проверить, появляется ли сообщение об ошибке, когда я ввожу действительный номер, но получаю исключение NoSuchElementException. Приведенный ниже HTML-код показывает, что сообщение об ошибке не отображается.

<div class = "date text_feild_last">
  <input type = "text" id = "seqNo" class = "form-control" name = "seq_num" value = "1" placeholder = "Enter Number" autocomplete = "off" data-orig = "921">
  <div hidden id = "seq-num-error" class = "help-inline"></div>
</div>

Код HTML при отображении сообщения об ошибке показан ниже.

<div class = "date text_feild_last">
    <input type = "text" id = "seqNo" class = "form-control" name = "seq_num" value = "1" placeholder = "Enter Number" autocomplete = "off" data-orig = "921">
    <div hidden id = "seq-num-error" class = "help-inline" style = "display: block;">Please enter valid number</div>
</div>

Я использую xpath для поиска сообщения об ошибке: WebElemet errorMessage = driver.findElement(By.xpath("//div[contains(text(), 'Please enter valid number')]"));

Я проверяю, отображается ли элемент, а затем выполняю следующую операцию, но не могу выполнить следующую операцию, так как получаю исключение. Пожалуйста, помогите мне. Спасибо.

Отвечает ли это на ваш вопрос? stackoverflow.com/questions/2646195/…

verity 19.12.2020 12:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
123
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Таким образом, в основном сообщение об ошибке не будет отображаться в теге или на экране, если вы введете правильный номер. Selenium попытается найти его на экране и выдаст исключение.

Чтобы справиться с этим, окружите линию попыткой и уловом. Перехватите исключение и зарегистрируйте его как Pass для допустимых номеров или зарегистрируйте его как Fail для недопустимых номеров и продолжите работу с программой.

try {
WebElement errorMessage = driver.findElement(By.xpath("//div[contains(text(), 'Please enter valid number')]"));
} catch (NoSuchElementException e){
//Log the message and continue

Другие вопросы по теме