t.me/atinfo_chat Telegram группа по автоматизации тестирования

getText() не извлекает текстовое значение из элементов

Добрый день,

Хотел сделать тест, который бы вытягивал полный список элементов, а потом циклически подставлял куда надо по очереди значения из этого списка.

Тестируемая страница http://www.oanda.com/currency/converter/

Проблема: список формируется по селектору - 205 элементов, каждый содержит текст, но при проверке печатью в консоль вижу что все значения пустые.

Селектор, по которому я выбираю элементы, как видно на скрине, не покрывает элементы содержащие пустые текстовые значения. Везде текстовое значение содержится.

Пробовал ожидания делать (таймауты, ожидания подгрузки элементов и т.п.), не решило проблемы, да и вообще, раз элементы находятся, значит проблема не с временем подгрузки.
В частности, если обратиться только к одному из этих элементов (findElement), все так же getText() выдаст пустую строку. Пробовал тот же селектор (на группу элементов) и новый селектор на 1 конкретный элемент - результат идентичен.


То есть я могу добраться до элементов, но не могу вытянуть из них значения. Что “не так” с реализацией этих элементов, как это обходить? Спасибо.

Пропробуйте не геттекст, а например, .getAtribute(“value”)

1 Симпатия

В этом случае выдает null. :confused:

Ссылка на тестируемую страницу не работает…

Отредактировал.

Правильно выдает - потому что некоторые отвечают “на авось”, не вникая в вопрос :slightly_smiling:

Возьмите innerText вместо value и прочитайте внимательно описание метода.

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebElement.html#getText--

3 Симпатий

innerHTML надо брать - .getAtribute(“innerHTML”)

1 Симпатия

Спасибо, работает с getAttribute(“innerHTML”) :slight_smile:

Selenium WebDriver: что на самом деле возвращают getAttribute(), getCssValue() и getText()

1 Симпатия

пробуйте getAttribute(“textContent”), только часто выдает с лишними пробелами

Подобная проблема + решение.

Для полного контроля над поведением кода теста лучше использовать, как указали выше, getAttribute(“textContent”).