Как тестировать модальные диалоги с Selenium?
Я начинаю с селен IDE и пытается протестировать веб-приложение, полное модальных диалогов (window.showModalDialog
).
запись теста, похоже, работает (за исключением того, что в журнале ничего нет, когда появляется диалоговое окно), но они не воспроизводятся должным образом. Скрипт фактически открывает окно (запускается нажатием кнопки), но затем просто ждет неопределенно долго.
какие предложения?
4 ответов
с селен FAQ, Selenium, по-видимому, работает с некоторыми типами диалогов, но не с другими:
Я не могу взаимодействовать с всплывающего окна. Мой тест останавливается!
вы можете, но только если диалог диалоговое окно оповещения или подтверждения. Другой специальные диалоги не могут быть отклонены javascript, и поэтому в настоящее время не может будут обработаны. К ним относятся: "Сохранить файл", " запомнить этот пароль" (Firefox), и модальные (Т. е.) диалоги. Когда они появляются, селен может только в отчаянии заламывает руки.
чтобы решить эту проблему, вы можете использовать обходной путь (если он существует); в противном случае возможно, вам придется исключить из теста ваш автоматизированный корпус. Для "сохранить Диалог "файл" в Firefox, пользовательский шаблон может быть указан при запуске через RC, который всегда будет вызывать файл для загрузки в указанный расположение, без запроса пользователя (видеть http://forums.openqa.org/thread.jspa?messageID=31350). Диалоговое окно "запомнить пароль" не должен появляться снова после того, как вы выбрали, чтобы запомнить. В настоящее время не так много, что можно сделать с IE модальное диалоговое окно.
кажется, я помню, что кто-то работал вокруг этого с аутохотки-AutoHotkey скрипт, который прекратил диалог.
Я использую Selenium IDE для тестирования модалов jQuery уже довольно давно, я никогда не сталкивался с какой-либо проблемой. Вот что я делаю, чтобы убедиться, что тест выполняется правильно при воспроизведении:
- выполнить скрипт на максимально медленной скорости
- когда открывается модальный, я использую команду waitForElementPresent для проверки наличия хотя бы одного из составляющих элементов на странице; аргумент, если один элемент загружается правильно, можно с уверенностью предположить что все элементы и, следовательно, модальное окно загружены правильно.
надеюсь, что это помогает. Если вам нужна дополнительная помощь, вы можете поделиться со мной кодом вместе с ошибкой в выполнении, которую IDE выдает вам.
модальное окно взломали:) http://seleniumdeal.blogspot.com/2009/01/handling-modal-window-with-selenium.html
вот как я обрабатываю всплывающее предупреждение в Selenium IDE
щелкните правой кнопкой мыши на элементе (в этом случае ваше всплывающее окно) есть некоторые команды, которые вы можете выбрать. Также есть шоу всех доступных команд, которые могут помочь. Вы должны использовать AssertElementPreset, и я думаю, что лучшим локатором в этом случае является CSS. Таким образом, вы можете выбрать AssertElementPresent.
или
вы можете использовать две команды на Selenium IDE
selectWindow | null
verifyElementPresent | css=div.content
надеюсь, что это помогает!