Unterschied zwischen webdriver.firefox.marionette & amp; webdriver.gecko.driver
Bin ich jetzt lernen Selen und habe ein problem.
Ich bin mir bewusst, dass Selen unterstützt von alten Firefox-version standardmäßig ohne Treiber. Und für neuere Versionen von Firefox haben wir zum download Treiber und definieren Sie diese mit System.setProperty
.
Gemäß dieser linkfür Firefox, 45 und 46, Treiber starten-code könnte wie folgt Aussehen:
WebDriver driver = new FirefoxDriver();
Mein Firefox ist version 45.5.1., aber obige code immer noch nicht funktionieren. Also laut dieser linkich habe
System.setProperty("webdriver.firefox.marionette","C:\\geckodriver.exe");
Und es funktionierte.
Dann merkte ich, dass ich noch nicht installiert geckodriver.exe
auf meinem computer. Um zu sehen, wie es geht, habe ich geändert, um code unten.
System.setProperty("webdriver.firefox.marionette","");
Es funktioniert immer noch.
So, hier kommt mein erstes problem: Was ist passiert? Ich bin sicher, dass keine geckodriver.exe
vorhanden ist, auf meine Umgebung. Wenn keine Stelle wurde darauf hingewiesen, warum sollte ich dann über das property?
Außerdem habe ich gesehen, wie Sie code wie
System.setProperty("webdriver.gecko.driver", "/tools/marionette/wires.exe");
Meine zweite Frage ist, was ist der Unterschied zwischen webdriver.gecko.driver
und webdriver.firefox.marionette
oder wires.exe
und geckodriver.exe
?
InformationsquelleAutor der Frage LU Cai | 2017-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bis version 45 (geschoben auf version 47), die Treiber verwendet werden, um zu automatisieren Firefox eine Erweiterung enthalten, die mit jedem Kunden. Aber diese Erweiterung fallen gelassen wurde, wahrscheinlich aufgrund der Veränderung der Politik, welche jetzt verlangt, dass alle Erweiterungen werden signiert, die von Mozilla.
Marionette ist der neue Treiber ausgeliefert wird/aufgenommen mit Firefox.
Dieser Treiber hat ein eigenes Protokoll, welches nicht direkt kompatibel mit der Selenium/WebDriver-Protokoll.
Den Gecko-Treiber (vormals Drähte) ist ein application-server Umsetzung der Selenium/WebDriver-Protokoll.
Er übersetzt die Selenium-Befehle und leitet Sie an die Marionette Treiber.
Für den Java-client, der das default-Verhalten ist die Verwendung der Gecko-Treiber, aber es kann überschrieben werden, verwenden Sie die legacy-Erweiterung als Fahrer mit der
webdriver.firefox.marionette
Eigenschaft:oder mit der
marionette
Fähigkeit durch dieFirefoxOptions
:oder direkt mit der
DesiredCapabilities
:Festlegen und definieren der Lage der Gecko-Treiber, entweder legen Sie die Treiber in einem Ordner in der
PATH
- Umgebungsvariable, oder legen Sie den Speicherort in das Eigentumwebdriver.gecko.driver
:oder starten Sie einen remote-server mit der Eigenschaft zugewiesen, die in der Befehlszeile ein:
InformationsquelleAutor der Antwort Florent B.
Bis Firefox 47.x-Versionen der legacy-Treiber wurde implementiert als Firefox-Erweiterung. Diese Erweiterung wurde installiert in das Profil von dem Treiber verwendet wird, wenn WebDriver startete Firefox.
Daher haben wir verwendet:
Firefox 48 deaktiviert der browser-Erweiterung eingeführt und WebDriver. Seitdem
GeckoDriver
die Marionette-basierte Lösung, die entwickelt und gepflegt von Mozilla ist für die Automatisierung der Mozilla Firefox-Browser.Marionette
Laut Mozilla die Offizielle Dokumentation auf developer.mozilla.org. Marionette ist die Automation Treiber. Es verwendet das remote-Protokoll von Firefox ermöglicht die Steuerung der Benutzeroberfläche. Marionette der Anforderungen akzeptiert und führt diese in der Gecko. Sie haben auch einen client. Der client sendet Instruktionen zu dem server, und der server führt die Anweisungen innerhalb des Browsers.
Daher begannen wir mit Marionette:
Drähte
Gibt es einige Referenzen zu benennen Sie die ausführbare Datei 'wires.exe' und fügen Sie es zu Ihrem Pfad. Daraus ergibt sich folgende verwendet wurde:
GeckoDriver
GeckoDriver ist die ausführbare Datei, die wir herunterladen müssen, die innerhalb unseres Systems und erwähnen Sie Ihren Standort in unserer Scripte/Programme während der Ausführung unserer testcases. GeckoDriver wiederum starten Sie den Mozilla Firefox-Browser.
Diese Auszüge wurden entnommen aus Jim Evan's epische Antwort auf die Frage Was sind die Vorteile der Verwendung von Marionette FirefoxDriver anstelle des alten Selen FirefoxDriver für eine Selen-tester werden?das uns ein detailliertes Verständnis der GeckoDriver und Marionette kam in die Praxis.
Daher begannen wir mit geckodriver.exe:
Nun im aktuellen Szenario haben Sie noch die option zum ausführen der Automation über die legacy-Firefox-47.x-browser und die aktuelle Firefox-53.x-browser-Versionen sowie.
Anwendungsfall 1:
Im Falle der Verwendung der legacy-Firefox-47.x-Browser haben Sie explizit "marionette" false " durch DesiredCapabilities-Klasse wie folgt:
Anwendungsfall 2:
Im Falle der Verwendung der legacy-Firefox-47.x-Browser, wenn Sie überspringen Sie die Einstellung "marionette" false " oder wenn Sie "marionette" zu wahren, werden Sie beobachten, eine
IllegalStateException
Anwendungsfall 3:
Im Falle der Verwendung der Firefox-53.x-Browser können Sie wählen, überspringen Sie die Einstellung "marionette" auf true wie folgt in denen gezeigt wird, die Marionette INFO logs z.B.
Marionette INFO Listening on port 11105
:Anwendungsfall 4:
Im Falle der Verwendung der Firefox-53.x-Browser können Sie explizit festlegen "marionette" auf "true" durch DesiredCapabilities Klasse, die zeigen, die Marionette WARNEN logs z.B.
WARN TLS certificate errors will be ignored for this session
Anwendungsfall 5:
Im Falle der Verwendung der Firefox-53.x-Browser, wenn Sie gewaltsam set "marionette" false " durch DesiredCapabilities Klasse sehen Sie einen
UnreachableBrowserException
.InformationsquelleAutor der Antwort DebanjanB
Marionette ist der neue Treiber ausgeliefert wird/aufgenommen mit der neuesten Firefox-Versionen.
Jedoch Geckodriver ist ein Proxy für die Verwendung von W3C-WebDriver-kompatiblen clients zur Interaktion mit Gecko-basierten Browsern. Geckodriver bietet HTTP-API beschrieben, die durch die WebDriver-Protokoll zur Kommunikation mit Gecko-Browsern wie Firefox version oben 47.
Wenn Sie noch immer Probleme (aufgrund von Inkompatibilität von FF-Versionen) können Sie die folgenden Funktionen:
InformationsquelleAutor der Antwort satender