2016-09-29 6 views
0

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.

+0

Können Sie die Selenium Version erwähnen verwendet? –

+0

@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. –

Antwort

0

Verwenden 2.53.1 Selen + Firefox (v 48) mit dem folgenden Code

System.setProperty("webdriver.firefox.marionette", file.getAbsolutePath()); 

oder

System.setProperty("webdriver.gecko.driver", file.getAbsolutePath()); 
+0

Chandra .. Ich habe die zweite Einstellung verwendet. Le ich versuche den ersten und schau, ob es mich über diese Hürde bringen kann. Danke –

+0

Chandra .. versuchen Sie es einfach und es funktioniert gut mit der ersten Option, die System.setProperty ist ("webdriver.firefox.marionette", file.getAbsolutePath()); –

Verwandte Themen