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


(Alexander) #1

Добрый день,

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

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

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

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

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


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


(Vasiliy Rakshin) #2

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


(Alexander) #3

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


(Vasiliy Rakshin) #4

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


(Alexander) #5

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


(vmaximv) #6

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

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

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


(Vasiliy Rakshin) #7

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


(Alexander) #8

Спасибо, работает с getAttribute("innerHTML") :slightly_smiling:


(Женя Воронкин) #9

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


(Jane Tymoschuk) #10

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


(krainevsky) #11

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

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