селен, не удается получить текст сообщения

#selenium #selenium-chromedriver

Вопрос:

Я пытаюсь получить текст сообщения, чтобы проверить это

введите описание изображения здесь

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

Ответ №1:

чтобы получить текст элемента, попробуйте:

 element = driver.find_element_by_xpath('your_xpath')
element.get_attribute('value')
 

или вы могли бы прикрепить, как выглядит элемент в DOM?

Комментарии:

1. конечно, вот элемент выглядит так : <класс div=»предупреждение об опасности-предупреждение об опасности-недействительное подтверждение» стиль=»отображение: нет;»> <класс div=»предупреждение об опасности-предупреждение об опасности-недействительное подтверждение» стиль=»отображение: нет;»><класс кнопки=»закрыть» данные-закрыть=»предупреждение»><класс кнопки=»закрыть» данные-закрыть=»предупреждение»></кнопка> Неверное имя пользователя или пароль </кнопка></div>

2. и вот моя функция для возврата текстовой общедоступной строки GetwrongDataMessage() { wait = новый WebDriverWait(драйвер, интервал времени. От миллисекунд(1000)); неправильное значение dat-сообщения = подождите. До тех пор, пока ((d) =>d.findElement(По.cssSelector((«#kt_login_form >> div:n-й ребенок(1)»)))); строка x = Неправильное значение. Текст; верните неверный идентификатор. Текст; }

3. @mohamedmostafa вам нужно найти по классу «предупреждение об опасности-предупреждение об опасности-недействительное подтверждение», что-то вроде этого «//div[@class= «предупреждение об опасности-предупреждение об опасности-недействительное подтверждение»]

4. Я попробовал , но получил тот же результат: «текст всегда пустой».

5. @mohamedmostafa похоже, ты используешь java, верно? Строковое слово = драйвер.findElement(По.xpath(«//div[@class=’предупреждение об опасности-предупреждение об опасности-недействительная проверка»]»)). getText(); System.out.println(word);

Ответ №2:

попробуйте это, чтобы проверить, существует ли

 driver.find_element_by_xpath("//*[contains(text(),'Invalid Username or Password')]")
 

или попробуйте сделать это, чтобы получить текст из какого-либо элемента

 driver.find_element_by_xpath('your_span_xpath').getText()