Heim >Java >javaLernprogramm >Wie gehe ich mit Authentifizierungs-Popups in Selenium WebDriver mithilfe von Java um?

Wie gehe ich mit Authentifizierungs-Popups in Selenium WebDriver mithilfe von Java um?

Susan Sarandon
Susan SarandonOriginal
2024-12-10 02:16:09640Durchsuche

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

Behandeln Sie das Authentifizierungs-Popup mit Selenium WebDriver unter Verwendung von Java

In Selenium WebDriver wird beim Navigieren zu einer Seite, die eine Authentifizierung erfordert, häufig ein Popup-Fenster ausgelöst . Der in der Frage angegebene Code zeigt jedoch weiterhin das Authentifizierungs-Popup an, selbst nachdem der Benutzer die richtigen Anmeldeinformationen eingegeben hat. Dies kann frustrierend sein und Automatisierungsbemühungen behindern.

Die Lösung liegt in der Verwendung der Methode „authenticateUsing()“ der Klasse „Alert“. Mit dieser Methode können Sie das grundlegende HTTP-Authentifizierungs-Popup umgehen und den Benutzer automatisch authentifizieren. Hier ist der geänderte Code:

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));
       
    }
}

In diesem aktualisierten Code wird die Methode „authenticateUsing()“ mit dem richtigen Benutzernamen und Passwort aufgerufen. Dadurch sollte der Benutzer automatisch authentifiziert und das Popup geschlossen werden, sodass die Seite erfolgreich geladen werden kann.

Hinweis:

  • Die Methode „authenticateUsing()“ wird nur in unterstützt Selenium WebDriver-Versionen 3.4 und höher, und es gilt immer noch als Beta-Funktion.
  • Derzeit ist es nur implementiert für den InternetExplorerDriver.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Authentifizierungs-Popups in Selenium WebDriver mithilfe von Java um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn