Chrome 59 suppression du support pour les URLs https://user:password@example.com .
J'ai un test selenium en C# qui doit fonctionner avec Chrome Version 60 sur Windows dans ' sans tête Mode
ChromeOptions options = new ChromeOptions();
options.AddArgument("headless");
driver = new ChromeDriver(chrome, options);
Voici la boîte de dialogue d'authentification SAML requise que j'essaie de gérer sous Windows :
Sur la base de la réponse donnée ici : Comment gérer une popup d'authentification avec Selenium WebDriver en utilisant Java ? ) Je vois plusieurs solutions de contournement pour gérer cela dans FireFox, mais rien pour Chrome 60 en mode sans tête.
J'ai essayé d'utiliser le code suivant pour visiter une URL avec des informations d'identification avant de visiter l'URL testée (sans informations d'identification), mais il semble qu'il y ait un problème d'accès. bug avec Chrome 60.
goTo("http://user:password@localhost"); // Caches auth, but page itself is blocked
goTo("http://localhost"); // Uses cached auth, page renders fine
// Continue test as normal
Je peux voir le code suivant dans Firefox gère l'authentification et la boîte de dialogue ne s'affiche jamais :
FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("network.automatic-ntlm-auth.trusted-uris", "https://saml.domain.com");
profile.EnableNativeEvents = false;`
J'ai essayé la deuxième approche ( en utilisant AutoIt ) et cela fonctionne sur Chrome 60 mais ne PAS travail sur Chrome 60 dans Sans tête mode.
//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();
J'espère qu'il y a une meilleure solution maintenant en 2017 et qu'il existe une approche qui fonctionnera avec Chrome 60 dans sans tête mode, des pistes ?
Juste pour être clair : essayer d'utiliser informations d'identification intégrées ne fonctionnera PAS avec chrome v59+ car les demandes de sous-ressources seront bloquées.
0 votes
Duplicata possible de Python Selenium Alert - La demande de nom d'utilisateur et de mot de passe ne fonctionne pas
1 votes
Vous pouvez vérifier ceci Question/discussion/filière également.
0 votes
Moi aussi, je reçois toujours l'invite de connexion dans Chrome lorsque je lance le test Selenium. Et les deux suggestions ne fonctionnent pas avec Chrome 60 en mode sans tête sur Windows.
2 votes
Il existe un autre moyen dans Selenium - En Java, c'est comme suit :- WebDriverWaits waits = new WebDriverWait(driver, 10) ; Alert alert = waits.until(ExpectedConditions.alertIsPresent()) ; alert.authenticateUsing(new UserAndPassword(username, password)) ;
0 votes
Essayez la même chose en C#, cela devrait fonctionner
0 votes
Faites-moi savoir quand vous l'aurez essayé.
0 votes
@ShubhamJain Malheureusement, cela ne fonctionne pas avec chromedriver, je viens de l'essayer moi-même, et Chrome ne reconnaît pas l'alerte d'authentification comme une alerte. Il semble que cela puisse être corrigé à un moment donné : bugs.chromium.org/p/chromedriver/issues/detail?id=1917
0 votes
Est-ce un problème uniquement avec https ou également avec http ?