Ich benutze Selenium WebDriver auf Firefox Version 48.x.x. Damit dies funktioniert, muss ich den GeckoDriver/Marionette-Treiber verwenden, um mit dem Firefox-Treiber zu sprechen. In den älteren Versionen von Firefox kann Selenium-Treiber die Sitzungs-ID eines Browserfensters unter Verwendung von driver.getWindowHandle()
abrufen. Im neuen (?) Gecko/Marionette-Treiber gibt diese Funktion jedoch eine kurze ganze Zahl zurück, keine lange Textzeichenfolge hexadezimal. Ist das ein Fehler? oder das neue Feature von Gecko/Marionette Treiber?Selenium Treiber - Fenstergriff vermasselt
Hier ist, wo ich in Schwierigkeiten geriet:
1 - Ich starte Firefox-Browser Gecko/Mario Treiber
final File file = new File("/Applications/geckodriver");
System.setProperty("webdriver.gecko.driver", file.getAbsolutePath());
driver = new FirefoxDriver();
Es funktioniert gut. Dann drucke ich den Wert des Browserfensters Sitzungs-ID aus:
System.out.println("WindowHandle ID = " + driver.getWindowHandle());
Es zeigt einige kurze ganze Zahlen irgendwo zwischen 10 bis 20, die falsch sind.
Dann drucke ich die Browser-Sitzung, und ich bin in der Lage, die tatsächliche Sitzungs-ID (das MAC-Feld zwischen dem()), um zu sehen:
Brwowser Session = BrowserSession [driver=FirefoxDriver: Firefox on MAC (**bc4eb9db-608b-5643-8ec9-136b6c54f6a2**), user=Admin, lastPage=null]
Jetzt denke ich, die neue Gecko/Marionette verkorkste die driver.getWindowHandle()
funktionieren? Wegen dieser Show-Stopper kann ich die Selenium-Kontrolle nicht von einem Fenster zu einem anderen Fenster oder einem Pop-up wechseln.
Frage:
Gibt es trotzdem, dass ich die aktuelle Browser-Fenster Session-ID bekommen? Bitte helfen Sie. Ich muss wirklich über diese große Hürde hinwegkommen. Ich habe nach einer Lösung gesucht, aber keine gefunden.
Ich schreibe in Java.
Vielen Dank Leute.
Können Sie die Selenium Version erwähnen verwendet? –
@Chandra ... Selen v 3.0 beta; Firefox v 48. Es funktioniert nur für Fenster. Ich habe versucht, das gleiche Setup für meinen Mac zu haben und es hat nicht funktioniert. –