Ich habe Probleme, wenn ich zwischen zwei Fenstern umschalte. Das Szenario sieht so aus: Ich öffne die Zielseite der Anwendung, dann klicke ich auf Login-Link, ein Popup-Fenster öffnet sich, ich gebe die Zugangsdaten ein und klicke auf Login-Button (hier wird das Pop-Up automatisch geschlossen). Danach muss ich zum ursprünglichen Fenster zurückkehren und mit anderen Aktionen fortfahren, da ich mich in der Anwendung eingeloggt habe. Das Problem ist, dass es sehr oft passiert, dass ich nicht zurück zum Elternfenster wechseln kann, nachdem Pop-up automatisch geschlossen wird, und der Webdriver es gerade hängt, ohne etwas zu tun, wird kein Fehler geworfen.Es ist nicht möglich, vom untergeordneten Fenster, das automatisch geschlossen wird, zurück zum Elternfenster zu wechseln.
Ich habe versucht alle Arten von Lösungen auf Google gefunden, aber nichts hat wirklich die ganze Zeit funktioniert. Letztes Stück Code, das ich versuchte, ist derjenige unter:
getLandingPageObject().performClickOnEmailLink();
getDriver().manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
Iterator<String> it = handles.iterator();
// iterate through your windows
while (it.hasNext()) {
String parent = it.next();
String newwin = it.next();
getDriver().switchTo().window(newwin);
typeLoginCredentials(username, password);
performClickOnLoginButton();
Thread.sleep(5000);
getDriver().switchTo().window(parent);
}
}
loginShouldBeSuccessful();
benutze ich Firefox 47.0.1 und Selen 2.53.1
Jede Idee, wie könnte ich dieses Problem beheben? Vielen Dank!
Überprüfen Sie, ob Sie nicht automatisch umgeschaltet werden oder ob die Fenstermethode ohne Parameter aufgerufen werden kann. – lauda
Ich wechsle nicht automatisch, und ich brauche Parameter für die Fenstermethode, um verschiedene Anmeldeinformationen einzugeben, um mich in die Anwendung einzuloggen. Das Stück Code, das ich oben gepostet habe, funktioniert nicht immer (manchmal hängt das Hauptfenster ohne zu tun) alles, nachdem Pop-up geschlossen ist), kann ich nicht verstehen, warum. – Larisa
@Larisa, versuche driver.SwitchTo(). DefaultContent() nachdem die Aktion, die Popup verursacht, automatisch geschlossen wird. –