Maison > Java > javaDidacticiel > Comment gérer les fenêtres contextuelles d'authentification dans Selenium WebDriver à l'aide de Java ?

Comment gérer les fenêtres contextuelles d'authentification dans Selenium WebDriver à l'aide de Java ?

Susan Sarandon
Libérer: 2024-12-10 02:16:09
original
637 Les gens l'ont consulté

How to Handle Authentication Pop-ups in Selenium WebDriver Using Java?

Gérer la fenêtre contextuelle d'authentification avec Selenium WebDriver à l'aide de Java

Dans Selenium WebDriver, la navigation vers une page qui nécessite une authentification déclenche souvent une fenêtre contextuelle . Cependant, le code fourni dans la question affiche toujours la fenêtre contextuelle d'authentification même après que l'utilisateur a saisi les informations d'identification correctes. Cela peut être frustrant et entraver les efforts d'automatisation.

La solution réside dans l'utilisation de la méthode AuthenticateUsing() de la classe Alert. Cette méthode vous permet de contourner la fenêtre contextuelle d'authentification HTTP de base et d'authentifier automatiquement l'utilisateur. Voici le code modifié :

import org.openqa.selenium.Alert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

public class EnhancedAuthenticationHandling {

    public static void main(String[] args) {
        // Set up Firefox profile to accept long username and password
        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("network.http.phishy-userpass-length", 255);
        profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "x.x.x.x");

        // Create FirefoxDriver with the modified profile
        WebDriver driver = new FirefoxDriver(profile);

        // Navigate to the protected page
        String login = "username";
        String password = "password";
        String url = "http://protectedpage.com";
        String baseUrl = "http://" + login + ":" + password + "@" + url;
        driver.get(baseUrl + "/");

        // Wait for authentication alert to appear
        WebDriverWait wait = new WebDriverWait(driver, 10);
        Alert alert = wait.until(ExpectedConditions.alertIsPresent());

        // Authenticate using the provided credentials
        alert.authenticateUsing(new UserAndPassword(login, password));
       
    }
}
Copier après la connexion

Dans ce code mis à jour, la méthode AuthenticateUsing() est appelée avec le nom d'utilisateur et le mot de passe corrects. Cela devrait automatiquement authentifier l'utilisateur et fermer la fenêtre contextuelle, permettant ainsi à la page de se charger avec succès.

Remarque :

  • La méthode AuthenticateUsing() n'est prise en charge que dans Selenium WebDriver versions 3.4 et supérieures, et il est toujours considéré comme une fonctionnalité bêta.
  • Actuellement, ce n'est que implémenté pour InternetExplorerDriver.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal