Как вставить значение в текстовое поле под div с помощью Watir - PullRequest
1 голос
/ 17 мая 2011

Я использовал set, чтобы вставить значение в текстовое поле под div.

Ниже приведен подход, который я использовал без успеха.Это единственный способ, которым я смог идентифицировать элемент.При попытке идентифицировать текстовое поле по имени не было распознано.

@browser.div(:evaluation, :id => "evaluation_form_attributes").text_field(:id => "evaluation_form_name")
@browser.set('Teacher Evaluation Form')

Была отображена следующая ошибка:

undefined method `set' for #<Watir::IE:0x4dd9348>

Это HTML-код:

div id="evaluation_form_attributes"

Имя оценки:

input id="evaluation_form_name" type="text" size="50" name="evaluation_form[name]" maxlength="30"

Ответы [ 3 ]

3 голосов
/ 17 мая 2011

Попробуйте это:

browser.text_field(:id => "evaluation_form_name").set 'Teacher Evaluation Form'
1 голос
/ 21 мая 2011

Возможно, в этом есть ифраме?если вы знаете, что что-то здесь есть, и вы уверены в идентификаторе, а watir не может его найти, то обычно это происходит потому, что эта часть страницы находится внутри фрейма.

Для работы с элементами, которые находятся внутрифрейма, вы должны указать фрейм, затем элемент

browser.frame (: как, что) .element (: как, что) .method и т. д.

см. http://wiki.openqa.org/display/WTR/Frames для получения дополнительной информации

0 голосов
/ 17 мая 2011

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

если ответ Zejiko не работает из-за «неспособности найти элемент», то это не параметр, который сбой, а поиск текстового поля. Используйте Firebug (в Firefox) или какой-либо набор инструментов DOM (Инструменты> Инструменты разработчика или F12 в IE8), чтобы найти текстовое поле и посмотреть, какие атрибуты у него есть.

Убедитесь, что идентификатор действительно "evaluation_form_name". Это чувствительно к регистру и чувствительно к пробелам в начале / конце. Чтобы расширить поиск, попробуйте следующее:

@browser.text_field(:id => /evaluation/).set 'Teacher Evaluation Form'

Используется регулярное выражение для идентификации идентификатора. Вы можете искать по многим вещам, а не просто по id, и вы можете использовать более одной. Например:

@browser.text_field(:id => /eval/, :index => 2)

находит второе текстовое поле, идентификатор которого содержит "eval".

То, что вы можете использовать для идентификации текстового поля, можно найти здесь: https://github.com/watir/watir/wiki/HTML-Elements-Supported-by-Watir

...