2016-11-07 1 views
1

Ich habe Selenium Version 3.0.1 und Firefox Version 46.0.1. In Selen 3.0.1 changelog wird erwähnt, dass:Erhalte IllegalStateException beim Starten von Firefox 46.0.1 mit Selenium 3.0

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver . The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases

während der folgenden Code ausführen:

Geckodriver is now the default mechanism for automating Firefox. This is Mozilla's implementation of a driver for that browser, and is required for automating Firefox versions 48 and above

Obwohl ich Störung erhalte

@Test 
public void test() { 
    WebDriver driver = new FirefoxDriver(); 
    driver.get("http://www.google.com"); 
    driver.quit(); 
} 

Warum das ich erhalte Fehler trotzdem benutze ich Firefox Version < 48.0? Muss Geckodriver mit Selenium 3.0.1 verwendet werden?

Above Code funktioniert perfekt, wenn ich folgende Änderungen vornehmen:

System.setProperty("webdriver.gecko.driver","path to geckodriver"); 
WebDriver driver = new FirefoxDriver(); 

Antwort

0

Changelog Link ist für Dotnet erwähnt. Hier ist die Changelog für Java

  • Firefox is only fully supported at version 47.0.1 or earlier. Support for later versions of firefox is provided by geckodriver, which is based on the evolving W3C WebDriver spec, and uses the wire protocol in that spec, which is liable to change without notice.
  • You may wish to choose an ESR release such as 45.4.0esr or earlier.
  • Firefox 47.0.0 is not supported at all.
+0

Es wird erwähnt, dass für Firefox-Version> 47.0.1 Geckodriver benötigt. –

+0

Firefox wird nur bei Version 47.0.1 oder früher vollständig unterstützt und ich verwende 46.0.1, obwohl es eine Ausnahme gibt, dass geckodriver eingestellt werden muss –

1

Sie müssen die folgende Eigenschaft für alle Firefox-Browser, unabhängig von der Version von selenium 3.0 weiter gesetzt:

System.setProperty("webdriver.gecko.driver","path to geckodriver"); 

Geckodriver is now the default mechanism for automating Firefox. This is Mozilla's implementation of a driver for that browser, and is required for automating Firefox versions 48 and above

Einstellen der Weg ist Pflicht .

Wenn Sie die Tests mit Firefox 47 oder früher ausführen möchten, setzen Sie die Firefox-Treiberfunktion "marionette" auf false.

DesiredCapabilities d = new DesiredCapabilities(); 
d.setCapability("marionette", false); // to disable marionette. 
WebDriver driver = new FirefoxDriver(d); 
Verwandte Themen