watir-webdriver - нажатие кнопки Javascript - PullRequest
2 голосов
/ 09 февраля 2012

Первая неделя с тестированием watir-webdriver и веб-приложений в целом, поэтому мы все еще пытаемся обернуть некоторые концепции вокруг.нажмите кнопку, чтобы нажать ее,

browser.button(:name, "_target0").click

Итак, я получил управляемый Firefox, нажав кнопку на кнопке

browser.button(:name, "_target0").fire_event('on_click')
browser.button(:name, "_target0").when_present.click

, но чем они отличаются?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Что касается различий между ними:

  • .click = имитирует щелчок левой кнопкой мыши по объекту.
  • .fire_event = выполняет JavaScript, даже если он илиможет быть недоступен в обычном режиме с помощью щелчка мыши.
  • when_present.click = ожидает, пока объект будет одновременно доступен и появится в видимой области (полное окно браузера), прежде чем попытаться щелкнуть.

when_present полезно, когда ваш сайт использует AJAX, и взаимодействие с одним объектом приводит к появлению другого объекта.Использование .click может попытаться щелкнуть по второму объекту до того, как он станет доступным, и сценарий завершится неудачей.

Вполне вероятно, что ваша страница содержит форму AJAX, а кнопка, с которой вы пытаетесь взаимодействовать, делаетне загружается сразу, но после небольшой задержки, когда:

  • введено текстовое поле
  • нажата другая кнопка
  • страница завершает генерацию контента
  • и т. Д.

Поскольку fire_event ищет не физическое представление кнопки, а событие JS в источнике, его можно использовать до того, как кнопка будет доступна / видима / активна.

1 голос
/ 14 мая 2012

Можете ли вы проверить уровень масштабирования браузера, в котором вы запускаете тест?

Я столкнулся с той же проблемой с методом click, но мне удалось "исправить" его, установив уровень масштабирования моегобраузер (IE9) обратно на 100%.

Обратите внимание, что требования Selenium Webdriver для Internet Explorer указывают, что это требование для работы Native Events.см здесь

...