Maison >Java >javaDidacticiel >Comment Selenium WebDriver en Java peut-il gérer efficacement les fenêtres contextuelles d'authentification ?

Comment Selenium WebDriver en Java peut-il gérer efficacement les fenêtres contextuelles d'authentification ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-27 13:26:14549parcourir

How Can Selenium WebDriver in Java Efficiently Handle Authentication Popups?

Gestion des fenêtres contextuelles d'authentification avec Selenium WebDriver à l'aide de Java

Les fenêtres contextuelles d'authentification dans les applications Web peuvent parfois poser des problèmes pour les tests automatisés à l'aide de Selenium WebDriver. Une approche courante pour gérer ces fenêtres contextuelles consiste à définir les préférences du navigateur et à modifier l'URL pour inclure les informations de connexion. Cependant, cette approche peut ne pas toujours fonctionner efficacement.

Problème rencontré :

Lorsque vous essayez de gérer les fenêtres contextuelles d'authentification à l'aide du code suivant, la fenêtre contextuelle apparaît toujours et le test peut ne procéder qu'après avoir annulé manuellement it :

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.http.phishy-userpass-length", 255);
profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "x.x.x.x");
driver = new FirefoxDriver(profile);
baseUrl="http://" + login + ":" + password + "@" + url;
driver.get(baseUrl + "/");

Solution :

Pour contourner la fenêtre contextuelle d'authentification et automatiser le processus d'authentification, nous pouvons exploiter la méthode AuthenticateUsing() introduite dans Selenium 3.4. Voici un extrait de code mis à jour qui intègre cette méthode :

WebDriverWait wait = new WebDriverWait(driver, 10);      
Alert alert = wait.until(ExpectedConditions.alertIsPresent());     
alert.authenticateUsing(new UserAndPassword(username, password));

Remarque :

  • La méthode AuthenticateUsing() est actuellement en version bêta à partir de Selenium 3.4.
  • L'extrait de code mentionné est applicable à InternetExplorerDriver seulement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn