Кнопка Watir Radio не найдена - PullRequest
1 голос
/ 25 января 2011

Я хочу установить этот переключатель в Watir, но он не находит его:

HTML:

<input type="RADIO" style="-moz-user-focus: normal;" tabindex="2421" handlenativeevents="false" value="3G" $9a="$9b" $89="isc_RadioItem_3" id="isc_1HV" name="network">

Ruby:

if BROWSER.radio(:value => '3G').exists?
  BROWSER.radio(:value => '3G').set
end

Может ли это бытьпотому что наш код содержит RADIO в верхнем регистре?(Создано SmartGWT)

Есть ли обходные пути для этого?

Ответы [ 3 ]

1 голос
/ 02 февраля 2011

Проверьте DOM, чтобы увидеть, находится ли он внутри фрейма или какого-либо контейнера, вызывающего проблемы. Если вы не можете получить доступ к переключателю по значению, вы можете ссылаться на него другим способом, например, указателем. Найдите контейнер переключателя и ссылайтесь на него по N-му индексу. Поэтому, если ваша кнопка является второй кнопкой в ​​таблице 12 таблицы 1, вы можете отточить ее следующим образом:

BROWSER.table(:index, 1).table(:index, 12).radio(:index, 2)

Или, если это 2-й переключатель на странице (всегда), то ...

BROWSER.radio(:index, 2)

Вы также можете ссылаться на радио-кнопку другими вещами:

BROWSER.radio(:value, '3G')
BROWSER.radio(:name, 'network')
BROWSER.radio(:id, 'isc_1HV')

Для получения дополнительной помощи мне нужно знать, можете ли вы ссылаться на другой элемент в том же контейнере на этой странице. Информацию о том, как вы можете ссылаться на элемент, смотрите здесь: HTML-элементы, поддерживаемые Watir

И если вы полностью застряли, вам понадобится xpath. Честно говоря, это должно быть последним средством.

0 голосов
/ 07 февраля 2011

Еще одна альтернатива. Если он не отвечает на радио, потому что это не радио-кнопка (как понял бы Ватир), тогда вам нужно найти другой способ щелкнуть объект. Вы можете попробовать щелкнуть контейнер, чтобы увидеть, работает ли он, но если нет, то вам нужно будет использовать аппаратный щелчок. Вы можете найти аппаратное решение для щелчка как утка (под одним из моих ответов: здесь ). Вы можете настроить этот код так, чтобы он принимал модификаторы x и y, если хотите, тогда вы можете использовать .left_click для аппаратного щелчка по любому элементу, включая контейнеры. Таким образом, left_click контейнер RADIO с модификаторами x и y, указывающими на переключатель. Это немного более динамично, чем просто аппаратное нажатие на абсолютную позицию по оси X / Y, но при этом курсор мыши будет от вас отвлечен, и он будет нажимать на экран. Надеюсь, это поможет!

0 голосов
/ 26 января 2011

Может быть в кадре, возможно. Сообщение об ошибке должно указывать в правильном направлении.

...