2017-01-17 7 views
0

Wir versuchen, unsere Website https://staging.rockettes.com zu authentifizieren. Es fragt nach einem Benutzernamen und einem Passwort, die wir über unseren Selen-Java-Code angeben müssen. Können Sie helfen? Danke, RachitHandle Login/Passwort Popup Selenium JAVA

+1

Ich glaube, Sie spezifische Fragen zu stellen brauchen. – alayor

+1

Bitte überdenken Sie, was Sie in dieser Frage gepostet haben.Wie es derzeit aussieht, machen es uns die Formatierung und der Umfang schwer, Ihnen zu helfen. Hier ist eine [große Ressource] (http://StackOverflow.com/Help/Mcve), um Sie auf die –

+0

Mögliche Duplikat von [Wie Authentifizierungs-Popup mit Selenium WebDriver mit Java umgehen] (http://StackOverflow.com/q/24304752/1072229) –

Antwort

1

Sie müssen eine testURL erstellen, bevor Sie den Befehl driver.get aufrufen.

So davon aus, dass der username = admin und pass = passieren

String testURL = "https://" + "admin" + ":" + "pass" + "@" + "staging.rockettes.com/"; 

Jetzt können Sie sicher Ihre driver.get nennen, wie folgend:

driver.get(testURL); 

Best of luck !


aktualisiert Antwort nach Kommentar op:

Okay, dann, so um die Warnung zu akzeptieren können Sie:

WebDriverWait waitTime = new WebDriverWait(driver, 5); 

Boolean isAlertPresent = wait.until(ExpectedConditions.alertIsPresent()); 

if(isAlertPresent==true){ 
Alert alert = driver.switchTo().alert(); 
alertText = alert.getText(); 
alert.accept(); 
} 
else{ 
System.out.println("No alert was present!") 
} 
+0

Danke, dass ich das getan habe, aber es bringt mich auf einen anderen Bildschirm mit einer Nachricht und fordert mich auf Ja/Nein zu klicken. Meine Abfrage war inline zu der Tatsache, dass - Kann ich die Elemente von Popup finden und Login/Pass durch Tasten und dann klicken Sie auf die Schaltfläche Ja/Nein usw. –

+0

Okay Rachit, ich habe meine Antwort aktualisiert, sehen, ob dies hilft und Upvote wenn es tut oder Kommentar hier, wenn es nicht :) Viel Glück bei der Lösung dieses Problems! –

+0

Tatsächlich wird es auch zeitlich begrenzt. Ich habe versucht, so weit zu folgen: 1. Alert-Mechanismus 2. Passing Login/URL selbst übergeben 3: Robots-Klasse. Die Situation ist hier sehr komplex - wir müssen diese URL in SauceConnect (SauceLabs.com) öffnen, um unser Testskript ausführen zu können. Allerdings bildet SauceConnect einen Tunnel, so dass es keinen der oben genannten 3 Mechanismen beherrscht. –

0

Ich denke, dass das Pop-up beim Auftreffen die ur-URL ist eher nicht Web-basierter Alarm, es ist ein Fenster Alarm, so dass Sie es mit Hilfe von AutoIT umgehen können, oder Sie können dies mit Robot-Klasse tun wie folgt (wenn auch nicht empfohlen):

String userName = "ADMIN"; 
    StringSelection stringSelection = new StringSelection(userName); 
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    clipboard.setContents(stringSelection, stringSelection); 

    Robot robot = new Robot(); 
    robot.keyPress(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_TAB); 
    robot.keyRelease(KeyEvent.VK_TAB); 

    String password = "PASS"; 
    StringSelection stringSelection1 = new StringSelection(password); 
    Clipboard clipboard1 = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    clipboard1.setContents(stringSelection1, stringSelection1); 


    robot.keyPress(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_V); 
    robot.keyRelease(KeyEvent.VK_CONTROL); 
    robot.keyPress(KeyEvent.VK_TAB); 
    robot.keyRelease(KeyEvent.VK_TAB); 

    robot.keyPress(KeyEvent.VK_ENTER); 
    robot.keyRelease(KeyEvent.VK_ENTER); 
+0

Es tut uns leid, es funktioniert nicht, da wir einen Tunnel verwenden und das Skript auf einem Remote-System ausführen, so dass es eine Ausnahme gibt, da die Zwischenablage dieses Systems möglicherweise nicht erreichbar ist. –

+0

versuchen Sie es mit AutoIT als letztes Mittel. – kushal

0

wenn Ihr Umgang Pop-ups, verwenden Sie den folgenden Befehl ein, bevor Benutzernamen und Passwort vorbei

driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
0

Sie können alle Möglichkeiten unten verwendet:

1. Durch Pass mit URL:

2. Alarmmeldung

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

3. AutoIT

Autoit Skript das Authentifizierungsfenster zu handhaben:

WinWaitActive("Windows Security") 
Send("username") 
Send("{TAB}") 
Send("password") 
Send("{ENTER}") 

Speichern Sie diese Datei als „auth.au3" Rechtsklick auf die Datei und wählen Sie„Compile Script (x86)“Option und es wird‚auth.exe‘ Jetzt schreiben sie die Beispiel-Java-Code, es zu benutzen:

driver.get("https://staging.rockettes.com/"); 
Runtime.getRuntime().exec("E:\\AutoIT\\auth.exe"); 

4. Sikuli

Screen screen = new Screen(); 
driver = new FirefoxDriver(); 
driver.get("https://staging.rockettes.com/"); 
screen.type("C:\\username.png"),"username"); 
screen.type("C:\\password.png","password"); 
screen.click("C:\\okButton.png"); 
Verwandte Themen