it-swarm.com.de

Wie man mit dem Authentifizierungs-Popup mit Selenium WebDriver umgeht, mit Java

Ich versuche, das Authentifizierungs-Popup mit dem folgenden Code zu behandeln:

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 + "/");

Wenn ich den Test durchführe, wird auf der Seite das Authentifizierungs-Popup angezeigt, das noch geladen wird, bis ich auf die Schaltfläche Abbrechen klicke. In diesem Moment kann ich auf die nächste Seite zugreifen, dies bedeutet, dass der Authentifizierungserfolg aber immer noch das Authentifizierungs-Popup anzeigt

48
Imen CHOK

Mit der Warnmethode authenticateUsing() können Sie das Feld HTTP-Basisauthentifizierung überspringen.

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

Ab Selen 3.4 ist es noch in der Beta

Im Moment wird die Implementierung nur für InternetExplorerDriver durchgeführt.

40
Prashanth Sams

Benutze kein Firefox-Profil und versuche es unter folgendem Code:

driver.get("http://UserName:[email protected]");

Wenn Sie es in IE browser implementieren, gibt es bestimmte Dinge, die Sie tun müssen.

Falls Ihr Authentifizierungsserver einen Benutzernamen mit einer Domain wie "domainuser" benötigt, müssen Sie der URL einen doppelten Schrägstrich / Hinzufügen:

//localdomain\user:[email protected]
30
Raghav Arora

Versuchen Sie die folgende Lösung und lassen Sie es mich bei Problemen wissen:

driver.get('https://example.com/')
driver.switchTo().alert().sendKeys("username" + Keys.TAB + "password");
driver.switchTo().alert().accept();

Das funktioniert gut für mich

7
user6939

Ich habe mich in meiner Bewerbung mehrmals mit diesem Problem befasst.

Wir können dies im Allgemeinen mit den folgenden 2 Ansätzen handhaben.

  1. Geben Sie den Benutzernamen und das Passwort in der URL selbst ein

  2. Sie können ein AutoIT-Skript erstellen und ein Skript aufrufen, bevor Sie die URL öffnen.

Bitte überprüfen Sie den folgenden Artikel, in dem ich beide Möglichkeiten erwähnt habe:
Fenster "Authentifizierung/Anmeldung bearbeiten" in Selenium Webdriver

7
Mukesh Otwani

Dies sollte für Firefox mit dem AutoAuth-Plugin funktionieren:

FirefoxProfile firefoxProfile = new ProfilesIni().getProfile("default");
File ffPluginAutoAuth = new File("D:\\autoauth-2.1-fx+fn.xpi");
firefoxProfile.addExtension(ffPluginAutoAuth);
driver = new FirefoxDriver(firefoxProfile);
3
Ripon Al Wasim

Wenn Sie sich mit der NTLM-Proxy-Authentifizierung befassen müssen, ist es eine gute Alternative, einen lokalen Proxy mit CNTLM zu konfigurieren.

Die Anmeldeinformationen und die Domain werden in /etc/cntlm.conf Konfiguriert.

Danach können Sie einfach Ihren eigenen Proxy verwenden, der alle NTLM-Aufgaben erledigt.

DesiredCapabilities capabilities = DesiredCapabilities.chrome();

Proxy proxy = new Proxy();
proxy.setHttpProxy("localhost:3128");
capabilities.setCapability(CapabilityType.PROXY, proxy);

driver = new ChromeDriver(capabilities);
2
cjungel