В Chrome 59 удалена поддержка URL-адресов https://user: [email protected].
У меня есть тест на селен С#, который должен работать с Chrome Версии 60 в Windows в режиме " без головы "
ChromeOptions options = new ChromeOptions();
options.AddArgument("headless");
driver = new ChromeDriver(chrome, options);
Вот диалог проверки подлинности SAML, который я пытаюсь обработать в Windows:
Основываясь на ответе, приведенном здесь: как обрабатывать всплывающее окно аутентификации с помощью Selenium WebDriver с использованием Java), я вижу несколько обходных путей для обработки этого в FireFox, но ничего для Chrome 60 в режиме без головы.
Я пробовал следующий код для посещения URL-адреса с учетными данными перед посещением тестируемого URL-адреса (без учетных данных), однако в Chrome 60 обнаружена ошибка.
goTo("http://user:[email protected]"); // Caches auth, but page itself is blocked
goTo("http://localhost"); // Uses cached auth, page renders fine
// Continue test as normal
Я вижу следующий код в Firefox, который обрабатывает аутентификацию, и диалоговое окно никогда не появляется:
FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "https://saml.domain.com");
profile.EnableNativeEvents = false;'
Я попробовал второй подход (используя AutoIt), и он работает на Chrome 60, но НЕ работает на Chrome 60 в режиме без головы.
//Use AutoIt to wait 4 seconds for the authentication required dialog to appear
au3.Sleep(4000);
//Use AutoIT to send in the credentials from app.config that are encrypted
au3.Send(USERNAME + "{TAB}" + PASSWORD + "{ENTER}");
//Refresh the page
driver.Navigate().Refresh();
Я надеюсь, что в 2017 году появится лучшее решение, и что есть подход, который будет работать с Chrome 60 в режиме без головы, какие-нибудь указатели?
Просто чтобы прояснить: попытка использовать встроенные учетные данные НЕ будет работать с использованием chrome v59+, потому что запросы подресурсов будут заблокированы.