Как использовать Watir с триггерными элементами Javascript - PullRequest
1 голос
/ 15 февраля 2011

Может кто-нибудь сказать мне, как нажать с Watir на элемент, который запускается с событиями JavaScript.

Например, на http://www.kissmetrics.com/, на домашней странице, если я нажму кнопку «Узнать больше» на изображении примера, появится лайтбокс. Затем я могу нажать кнопку «Начать», чтобы перейти на страницу регистрации.

Как я могу смоделировать вещь в Watir? То есть. как я могу сначала нажать кнопку «Подробнее», а затем кнопку «Начать»?

Спасибо за любую помощь.

Ответы [ 3 ]

2 голосов
/ 25 февраля 2011

Ну, на самом деле, при нажатии вы запускаете события javascript, но они не могут быть теми, которые ищет конкретный элемент. И иногда элемент должен быть сначала переведен в состояние, в котором вы можете щелкнуть по нему мышью.

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

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

В этом конкретном случае, если вы намереваетесь нажать СИНЮЮ кнопку обучения, которая, кажется, находится на вершине какого-то снимка экрана, то изучение HTML или DOM показывает, что у него есть удобное значение идентификатора, которое может быть используемый. Вы также можете видеть, что он «подключен» для ответа на событие onclick, и, что более важно, он открывает новое модальное окно (в данном случае div, который выглядит как всплывающее окно) onclick="new Modal('learn_more_content', {top: 110, modalClass: 'borderless'}).show(). поэтому следующий код должен работать для запуска модального

 browser.button(:id, "learn_more_btn").click

Затем нажмите зеленую кнопку «начать» (их несколько, поэтому нам нужно указать, какая из них)

browser.p(:class, "cta").button(:class, "green button has_arrow").click
0 голосов
/ 15 февраля 2011

Я проверил это в irb, и оно работает:

browser.span(:text, 'Learn more').click
browser.span(:text, 'Get Started').click

Пока оно в DOM, вы можете добраться до него.

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

Я думаю, что проблема в том, что события JavaScript не запускаются при нажатии на ссылку с WatirЭто может помочь: Как узнать, какие события JavaScript сработали?

...