Появится диалоговое окно безопасности IE Windows, чтобы заблокировать навигацию Selenium - PullRequest
0 голосов
/ 22 мая 2018

Я использую Selenium в C # в Windows 10. На тестируемом сайте должно быть установлено окно входа Windows Security в IE, что и происходит.Но появляется окно для входа в систему, чтобы заблокировать вызов.

var home = "https://site.under.test.com/"; 
driver = new InternetExplorerDriver(AppDomain.CurrentDomain.BaseDirectory);

driver.Url = home;
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl(home + "secure/");

//code to handle login box goes here, never gets executed unless the dialog box 
//is manually addressed or something times out in GoToURL(), 
//and then the dialog box doesn't work.

Появляется окно для входа в систему: Нажмите здесь для просмотра окна входа в систему

Но выполнение остановленовызов GoToUrl (): Нажмите здесь для просмотра экрана выполнения

Не имеет значения, какой код я помещаю после этого для обработки всплывающего окна, выполнение блокируется до тех пор, пока в GoToUrl не произойдет тайм-аут ().

Это ожидаемое поведение?Как обойти это?

Разъяснение: Проблема не в том, как ввести данные во всплывающее окно.Речь идет о том, что выполнение кода не продвигается до такой степени, что я могу вводить данные во всплывающее окно без вмешательства или тайм-аута.

Это работает на Win8.1, ноне на Win10

Ответы [ 2 ]

0 голосов
/ 23 июля 2018

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

.GoToUrl ожидает загрузки страницы, и, так как страница еще не загружена, она ждет, ждет и выдает исключение.

Вы можете ввести url usign Javascript.Ниже приведен код .Net для него

string script = "window.location = \'" + url + "\'";
((IJavaScriptExecutor)driver).ExecuteScript(script);

Вы должны сами управлять своим ожиданием после использования вышеуказанного кода.

И Selenium по-прежнему не работает с диалоговым окном безопасности Windows, которое вы видите послеэто (или я нигде не нашел никакой информации, показывающей, как заставить Selenium работать с этим диалоговым окном)

Лучшее решение, которое я нашел, - это использовать AutoIT и использовать команды TAB в AutoIT для ввода имени пользователя,перейдите к паролю и введите пароль, а затем перейдите на вкладку, пока не появится кнопка «Отправить», а затем нажмите на эту папкуПожалуйста, прокомментируйте здесь, если вы нашли какое-либо лучшее решение, чем это до сих пор

0 голосов
/ 30 мая 2018

Webdriver больше официально не поддерживает базовую аутентификацию.Он был удален из кода Java, и версия .Net работает случайно.Из моего опыта вы можете ожидать, что это будет работать (пока) на Win7-8.1, но не на Win10

Это из поддержки Selenium: Поддержка диалогов аутентификации была удалена из привязок java с this commit.

Я удивлен, они все еще присутствуют в привязке c #, потому что в спецификации webdriver .

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