Какой обходной путь для предупреждений JavaScript, которые генерируются в onload () страницы с помощью Selenium? - PullRequest
3 голосов
/ 18 ноября 2010

Я автоматизирую страницу формы, используя Selenium RC (C #).После того, как я нажму кнопку «Отправить», я получу предупреждение «Records Edited Successfully!».Заголовок этого окна предупреждения: «The page at <a href="http://www">http://www</a>.******.com says:».

Но Selenium не видит это предупреждение.И я не могу обойти это.

Вот что я пробовал:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.WaitForPageToLoad("30000");

Результат: я получаю следующую ошибку: "Selenium.SeleniumException : Timed out after 30000ms"

Тогда я попробовал:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.OpenWindow("", "The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");

Результат: три окна открыты (сайт, оповещение и дополнительное окно).Ничто не закрывается.Я получаю следующую ошибку: "Selenium.SeleniumException : Timed out after 30000ms"

Затем я попытался:

selenium.Click("ctl00_Content_ctl00_btnSubmit");
selenium.SelectWindow("The page at The page at http://www.******.com says:");
selenium.Close();
selenium.WaitForPageToLoad("30000");

Результат: я получаю следующую ошибку: "Could not find window with title 'The page at <a href="http://www">http://www</a>.******.com says:'"

Любойпредложения?Пожалуйста, помогите преодолеть это препятствие.

Ответы [ 3 ]

4 голосов
/ 18 ноября 2010

Очевидно, что самый простой способ сделать это - использовать скрипт, чтобы переопределить функцию alert () для чего-то, что не появляется в диалоговом окне.

1 голос
/ 18 ноября 2010

Наконец-то я нашел обходной путь:

    selenium.Click("ctl00_Content_ctl00_btnSubmit");                        
    Thread.Sleep(5000);
    selenium.KeyDownNative("32");
    selenium.KeyUpNative("32");

Желаю всем всего наилучшего!

0 голосов
/ 18 ноября 2010

Этот пост, кажется, предлагает решение:

Также проверьте этот пост:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...