2017-02-22 5 views
2

Selenium3 unterstützt ausführbare geckodriver zum Starten Mozilla Firefox genau wie andere Treiber; aber ausführbare geckodriver ist nicht kompatibel mit Mozilla Firefox < v47.Verwendung von Selen 3.0 mit Firefox V <47

Wie können wir also die Abwärtskompatibilität mit Browsern erreichen V<47 i, e wie können wir firefox Browser V<47 mit Selenium3 verwenden.

Antwort

0

sollten Sie alte verwenden FirefoxDriver, so stellen Sie sicher, mariniert auf false gesetzt, wenn Sie RemoteDriver verwenden, weil ich nicht sicher bin, wird es standardmäßig aktiviert (caps.setCapability(FirefoxDriver.MARIONETTE, false);)

Dieser Treiber benötigt keine .exe Datei , nur import org.openqa.selenium.firefox.FirefoxDriver; in Ihrem Code, damit Sie es verwenden können.

driver = new FirefoxDriver(); 

oder wenn Sie Raster verwenden:

driver = RemoteWebDriver(url, DesiredCapabilities.firefox()); 
3

Deaktivieren Sie die geckodriver Talent, um FirefoxDriver verwendet werden kann.

System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe"); 
DesiredCapabilities d = new DesiredCapabilities(); 
d.setCapability("marionette", false); // to disable marionette, by default true 
WebDriver driver = new FirefoxDriver(d); 

wenig Hintergrund geckodriver.exe und Firefox-Version unterstützt:

Von geckodriver Github Seite:

Firefox 47 is explicitly not supported 

Also, wenn Sie <= Firefox 47 Version verwenden möchten, verwenden Sie Firefox driver, aber nicht geckodriver.

  1. Bei Selen 2,53 Sie keine zusätzlichen Dinge tun müssen, um (keine Notwendigkeit zur Einrichtung geckodriver als selenium 2.53 verwendet Firefox driver von default).
  2. In Selenium 3.0, müssen wir geckodriver Pfad festgelegt (wie geckodriver der default Treiber für Firefox in Selenium 3.0 ist) System.setProperty mit und stellen Sie marionette-false, so geckodriver Fähigkeiten verwendet, deaktiviert und Treiber Standard-Firefox werden.

Referenzen:

  1. https://github.com/mozilla/geckodriver#supported-firefoxen
  2. https://github.com/mozilla/geckodriver/issues/224
  3. https://stackoverflow.com/a/40658421/2575259
+0

tun wir irgendeine Art von Flexibilität in Code wie gleichen Code für ff v haben> 47 und ff <47 oder eine Bedingung setzen, um generischen Code zu machen ??? – Jimmy

+0

Sie können die Methode 'getVersion' verwenden. Also füge if else hinzu, um deine Aufgabe zu erfüllen. Mehr Details hier http://stackoverflow.com/questions/12556163/get-browser-version-using-selenium-webdriver –

+1

Ich versuche, zu Selenium 3.X zu migrieren, aber der Geckodriver war das Haupthindernis. Jetzt weiß ich, wie ich damit umgehen soll. Deine Lösung rette meinen Tag. Vielen Dank – cezarypiatek

Verwandte Themen