2012-05-21 2 views

ответ

5

Даже я столкнулся с той же проблемой. После нескольких часов, проведенных с селеном, найдено решение для обработки предупреждений и всплывающих окон java-скриптов.

мы можем использовать keyPressNative селена для обработки предупреждений java-скрипта от RC-селена.

Вот как должен использоваться метод key*Native():

selenium.keyPressNative("27"); // Escape 
    selenium.keyPressNative("10"); // Enter  
    selenium.keyDownNative("16"); // Press and do not relase the shift key, so that 
    selenium.keyPressNative("79"); // this character will be capitals 
    selenium.keyUpNative("16"); // Release the shift key, as we don't need it for the 
    selenium.keyPressNative("67"); 

не рекомендуется, но помог мне в решении некоторых неудач селена.

0

Нельзя делать. As stated in Selenium documentation:

Селена пытается скрыть эти диалоги из вас (заменив Window.alert, window.confirm и window.prompt), поэтому они не будут останавливать выполнения вашей страницы. Если вы видите всплывающее окно с предупреждением, это , вероятно, потому, что он запускался во время процесса загрузки страницы, а это , как правило, слишком рано для нас, чтобы защитить страницу.

Это известное ограничение Selenium RC (и, следовательно, Selenium IDE), и одна из причин, по которой был разработан Selenium 2 (WebDriver). Если вы хотите поймать предупреждения onload JS, вам нужно to use WebDriveralert handling.

В качестве обходного пути вы можете использовать Robot, чтобы заполнить любой текст и нажать Enter и подтвердить диалог вслепую. Это не самый чистый способ, но он может работать. Однако вы не сможете получить сообщение alert.

Смежные вопросы