Как получить содержимое текстового поля ввода Selenium

Материал из AOW

Перейти к: навигация, поиск
  • Текстовые поля бывают двух типов:
   однострочные, которые создаются при помощи тега <input>
   многострочные, которые создаются при помощи тега <textarea>

Значение однострочного поля указывается в атрибуте value. Значение многострочного поля указывается между открывающим и закрывающим тегами.

Тем не менее, Selenium использует единый метод для получения значения полей обоих типов – через атрибут value, несмотря на то, что в многострочных полях он отсутствует. А метод getText для текстовых полей всегда возвращает пустое значение.

import org.openqa.selenium.*
import org.openqa.selenium.firefox.*

driver = new FirefoxDriver()

driver.get("http://www.tizag.com/htmlT/htmltextfields.php")
field = driver.findElements(By.tagName("form")).get(3).findElement(By.name("first"))
text = field.getAttribute("value")

driver.get("http://www.tizag.com/htmlT/htmltextarea.php")
area = driver.findElement(By.tagName("textarea"))
text = area.getAttribute("value")

Это, кстати, имеет ещё один замечательный побочный эффект. Как вы наверное помните, метод getText для невидимых элементов всегда возвращает пустую строку. В то же время для тестирования часто бывает полезно знать значения скрытых полей. Ну а метод getAttribute одинаково хорошо работает как с видимыми, так и с невидимыми элементами.

Личные инструменты

Разработка веб-сайтов, автоматизация.
По всем вопросам обращайтесь по телефонам:

+7 495 640 29 90
http://artofweb.ru