Драйвер выдает исключение тайм-аута, когда я перехожу на страницу, используя URL, потому что я перенаправлен на другую страницу с защитой паролем - PullRequest
0 голосов
/ 11 июля 2019

Это проблема входа в систему. Проект, над которым я работаю, защищен через сервер федерации. Итак, в основном, когда я использую driver.Navigate().GoToUrl(someUrl). Меня перенаправляют на страницу, которая не является «someUrl», и меня запрашивают имя пользователя и пароль на перенаправленной странице. Проблема в том, что моя строка кода, в которой я перехожу к someUrl, истекает, и я не могу завершить авторизацию на перенаправленной странице. Другая проблема заключается в том, что URL перенаправленной страницы содержит руководства, которые я не могу получить. Поэтому лучшим решением моей проблемы было бы игнорировать исключение, которое выдает драйвер, когда он пытается достичь someUrl, а затем я просто продолжаю с alert.SwithTo() или http//:username:password@url.com solution

Я попытался завершить это с помощью блока try catch, где я бы поймал исключение, но продолжил выполнение в блоке catch, но это не сработало.

ChromeDriver driver = new ChromeDriver();
driver.Navigate().GoToUrl("someUrl");

var alert = driver.SwitchTo().Alert();
alert.SetAuthenticationCredentials("UserName","Password");
alert.Accept();

бросил исключение:

OpenQA.Selenium.WebDriverException: HTTP-запрос к удаленному серверу WebDriver для URL http://localhost:444/session/6778bv57v8vb88c8576/alert/text по истечении 10 секунд. ---> System.Net.WebException: запрос был прерван: для операции истекло время ожидания.

1 Ответ

0 голосов
/ 11 июля 2019

Пожалуйста, попробуйте следующий код для передачи имени пользователя и пароля в качестве параметра внутри URL. После этого вам не нужно переключаться на предупреждение, SetAuthenticationCredentials() и принять его:

   driver.Navigate().GoToUrl("https://" + username + ":" + password + "@<site-needing-auth>.com")
...