Archive
Внезапно вываливающийся список
Ну, предположим такую ситуацию: на чекауте предоставляем пользователю все адреса его города, чтобы не путался. Но адреса эти ровно в 00.00 превращаются спрятаны в отдельном списке, который подгружается на страницу только при необходимости.
И чтобы вообще огорчить тестировщиков — список этот появляется под полем адреса только при наборе текста, а Selenium IDE такие мансы очень не любит.
Но ведь тестировщики сами могут кого угодно огорчить.
Итак, у нас есть поле ввода с id=billing_full_address, при наборе текста туда должен подтянуться целый список адресов, а затем в выпадающем списке с адресами надо будет кликнуть по тестовому адресу ‘1 Darling Mills Road, ALBION PARK NSW 2527‘.
Алгоритм:
- впишем в этом поле начало адреса, который нужно будет получить в списке всех адресов,
- эмулируем нажатие клавиш (можно даже передавать нажатие определенных клавиш, есть в сети полная таблица кодов),
- дожидаемся появления ссылки с нужным адресом,
- кликнем по ссылке с нужным адресом.
type | id=billing_full_address | 1 Darling island |
keyDown | id=billing_full_address | w |
keyPress | id=billing_full_address | w |
keyUp | id=billing_full_address | w |
waitForElementPresent | //a[contains(text(),’1 Darling Mills Road, ALBION PARK NSW 2527′)] | |
click | //a[contains(text(),’1 Darling Mills Road, ALBION PARK NSW 2527′)] |
Делов-то…
О, хитрая дрянь! Клик по кнопке JQuery
В мире все ещё много дряни. Вот, например, кнопки, реализованные с помощью jQuery: курсором по ней кликать можно, а через Selenium – увы.
Кнопка, расположенная под текстовым полем, представляет из себя нечто вот такое:
<div class=”judge”>
<button class=”win-button disabled“>
……….<span class=”out”><span class=”button”>Поделиться</span></span>
</button>
После того, как в текстовое поле комментария будет вписан какой-нибудь текст, локатор кнопки изменится:
<div class=”judge”>
<button class=”win-button“>
……….<span><span>Поделиться</span></span>
</button>
В момент нажатия на кнопку локатор снова меняется:
<div class=”judge”>
<button class=”win-button pushed“>
……….<span><span>Поделиться</span></span>
</button>
А когда кнопка будет “освобождена”, локатор вообще невообразимо превращается в
<div class=”judge disabled“></div>
То есть, кнопка вообще исчезает. Коммент сделан, Рубикон брошен на игральный стол (все же знают, что такое кубик Рубикона, не так ли?!)
В общем, не в локаторах проблема. Проблема в том, что Selenium IDE для клика на такие нестандартные кнопки требуется нестандартный подход.
Секрет Дело в том, что эта кнопка реагирует на событие mouseUp и mouseDown.
Рассмотрим работу подобных неурядиц на живом примере: сегодня DOU.ua будет нашей подопытной крыской.
Комментарии