Я искал много, много мест для решения моей проблемы, но не нашел. Я понял, что к настоящему времени Selenium предоставил бы прямое и простое решение для обработки модальных окон/диалогов из Internet Explorer с использованием Java.Есть ли определенное решение Selenium для модальных всплывающих диалогов в Internet Explorer с Java?
Веб-приложение, которое я тестирование имеет следующие характеристики:
- Это поддерживается только Internet Explorer (никоим образом вокруг этого)
- Главная принимает идентификатор пользователя и пароль, с «Логин "
- При загрузке и при загрузке страницы появляется всплывающее окно« Добро пожаловать - Что нового »с галочкой« Не отображать это снова »и кнопку« ОК », чтобы закрыть окно.
- Я не могу ничего сделать с родительским окном, пока я не отпущу всплывающее окно.
- В всплывающем окне отключен щелчок правой кнопкой мыши (однако я вижу исходный код, открывая инструменты F12 перед входом и окном всплывающее)
Это то, что я пробовал:
getWindowHandles()
всегда возвращает 1 для родительского окна, так что это делаетdriver.switchTo(handle)
не применимой- Это не аль ERT, так
driver.switchTo().alert()
илиaccept()
не работает findElement(By whatever)
НЕ найти какие-либо элементы в всплывающем окне (например, кнопка «OK» или флажок, и т.д.)Robot
класса является единственной вещью, которую я видел работа, где я могу послать нажатия клавиш для перехода к кнопке «OK» и нажмите на него, чтобы закрыть окно ...
Вот мой вопрос:
- Поскольку есть флажок, чтобы «Дон 't показать это снова ", есть пользователи, для которых будет отображаться модальное всплывающее окно, а некоторые, для которого оно не будет. Мне нужно учитывать оба случая.
- Мне нужно найти 100% -ный способ узнать, отображается ли всплывающее окно или нет. Если у меня есть эта информация, я могу использовать класс Robot (хотя и «грязный») для выполнения действий при всплывании при необходимости.
- Я попытался выяснить, включены ли элементы родительского окна с помощью
isEnabled()
, но даже если элементы не отображаются вручную, пока отображается модальное всплывающее окно,isEnabled()
всегда возвращает TRUE - так что это не сработает - есть ли лучший способ проверить это для «заблокированных» элементов в фоновом режиме?
Мои вопросы:
- Как проверить на наличие модального всплывающего окна, который не отображает 100% времени? (в Internet Explorer 10, используя Selenium с Java)
- Помимо использования класса Robot, как вы взаимодействуете с фактическими элементами в модальном всплывающем диалоговом окне (например, динамические кнопки радио, которые не всегда отображают одни и те же параметры пользователю)?
спасибо.
Является ли это яблочным апплетом? Если это так, Selenium не поддерживает эти типы приложений. – AlexCharizamhard
Нет, не апплет. Я фактически автоматизировал это с использованием QTP раньше, и там, очевидно, нет проблемы. Объект в репозитории объектов QTP указан как «Окно» со своим «страничным» дочерним элементом (и «ОК» WebButton как дочерний элемент «Страница») –