Это ответ с 2012 года, вопрос с 2009 года, но люди все еще смотрят на него, и есть только один правильный (используйте WebDriver
) и один почти полезный (но недостаточно хороший) ответ.
Если вы используете Selenium RC и можете видеть диалоговое окно с предупреждением, это невозможно. Селен должен справиться с этим для вас. Но, как указано в документации Selenium :
Selenium пытается скрыть эти диалоги от вас (заменяя
window.alert, window.confirm и window.prompt), чтобы они не остановили
исполнение вашей страницы. Если вы видите всплывающее окно с предупреждением,
вероятно, потому что это сработало во время процесса загрузки страницы, который
как правило, нам еще рано защищать страницу.
Это известное ограничение Selenium RC (и, следовательно, Selenium IDE) и одна из причин, по которой был разработан Selenium 2 (WebDriver). Если вы хотите обрабатывать onload
JS-оповещений, вам нужно , чтобы использовать WebDriver для обработки оповещений .
Тем не менее, вы можете использовать Robot
или selenium.keyPressNative()
, чтобы заполнить любой текст и нажать Введите и подтвердить диалог вслепую. Это не самый чистый способ, но это может сработать. Однако вы не сможете получить сообщение alert
.
Robot
имеет все полезные ключи, сопоставленные с константами, так что это будет легко. С keyPressNative()
вы хотите использовать 10
в качестве значения для нажатия Введите или 27
для Esc , поскольку оно работает с ASCII-кодами .