it-swarm.com.de

Selenium using Java - Der Pfad zur ausführbaren Treiberdatei muss über die Systemeigenschaft webdriver.gecko.driver festgelegt werden

Ich versuche, Mozilla zu starten, erhalte jedoch weiterhin folgende Fehlermeldung:

Ausnahme im Thread "main" Java.lang.IllegalStateException: Der Pfad zur ausführbaren Treiberdatei muss durch die Systemeigenschaft webdriver.gecko.driver festgelegt werden. Weitere Informationen finden Sie unter https://github.com/mozilla/geckodriver . Die neueste Version kann von https://github.com/mozilla/geckodriver/releases heruntergeladen werden

Ich benutze Selenium 3.0.01 Beta-Version und Mozilla 45. Ich habe es versucht mit Mozilla 47 zu. aber immer noch dasselbe.

62
Reema

Die Client-Bindungen Selenium versuchen, die ausführbare Datei geckodriver auf dem System PATH zu finden. Sie müssen das Verzeichnis mit der ausführbaren Datei zum Systempfad hinzufügen.

  • Auf Unix-Systemen können Sie Folgendes tun, um es an den Suchpfad Ihres Systems anzuhängen, wenn Sie eine bash-kompatible Shell verwenden:

    export PATH=$PATH:/path/to/geckodriver
    
  • Unter Windows müssen Sie die Systemvariable Path aktualisieren, um der ausführbaren Datei den vollständigen Verzeichnispfad hinzuzufügen. Das Prinzip ist dasselbe wie unter Unix.

Die unten stehende Konfiguration zum Starten des neuesten Firefox unter Verwendung einer Programmiersprachenbindung gilt für Selenium2, Um Marionette explizit zu aktivieren. Ab Selenium 3.0 sollten Sie nichts mehr tun müssen, um Marionette zu verwenden, da es standardmäßig aktiviert ist.

Um Marionette in Ihren Tests verwenden zu können, müssen Sie Ihre gewünschten Fähigkeiten aktualisieren.

Java :

Als Ausnahme wird klargestellt, dass Sie den neuesten geckodriver.exe Von hier herunterladen und den heruntergeladenen geckodriver.exe Pfad, in dem er auf Ihrem Computer vorhanden ist, als Systemeigenschaft mit der Variable webdriver.gecko.driver, Bevor Sie den Marionettentreiber starten und Firefox wie folgt starten: -

//if you didn't update the Path system variable to add the full directory path to the executable as above mentioned then doing this directly through code
System.setProperty("webdriver.gecko.driver", "path/to/geckodriver.exe");

//Now you can Initialize marionette driver to launch firefox
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
WebDriver driver = new MarionetteDriver(capabilities); 

Und für Selenium3 Verwenden Sie als: -

WebDriver driver = new FirefoxDriver();

Wenn Sie immer noch in Schwierigkeiten sind, folgen Sie ebenfalls diesem Link, der Ihnen bei der Lösung Ihres Problems helfen würde.

. NET :

var driver = new FirefoxDriver(new FirefoxOptions());

Python :

from Selenium import webdriver
from Selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.FIREFOX

# Tell the Python bindings to use Marionette.
# This will not be necessary in the future,
# when Selenium will auto-detect what remote end
# it is talking to.
caps["marionette"] = True

# Path to Firefox DevEdition or Nightly.
# Firefox 47 (stable) is currently not supported,
# and may give you a suboptimal experience.
#
# On Mac OS you must point to the binary executable
# inside the application package, such as
# /Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin
caps["binary"] = "/usr/bin/firefox"

driver = webdriver.Firefox(capabilities=caps)

Ruby :

# Selenium 3 uses Marionette by default when firefox is specified
# Set Marionette in Selenium 2 by directly passing marionette: true
# You might need to specify an alternate path for the desired version of Firefox

Selenium::WebDriver::Firefox::Binary.path = "/path/to/firefox"
driver = Selenium::WebDriver.for :firefox, marionette: true

JavaScript (Node.js) :

const webdriver = require('Selenium-webdriver');
const Capabilities = require('Selenium-webdriver/lib/capabilities').Capabilities;

var capabilities = Capabilities.firefox();

// Tell the Node.js bindings to use Marionette.
// This will not be necessary in the future,
// when Selenium will auto-detect what remote end
// it is talking to.
capabilities.set('marionette', true);

var driver = new webdriver.Builder().withCapabilities(capabilities).build();

Mit RemoteWebDriver

Wenn Sie RemoteWebDriver in einer beliebigen Sprache verwenden möchten, können Sie Marionette in Selenium Grid verwenden.

Python :

caps = DesiredCapabilities.FIREFOX

# Tell the Python bindings to use Marionette.
# This will not be necessary in the future,
# when Selenium will auto-detect what remote end
# it is talking to.
caps["marionette"] = True

driver = webdriver.Firefox(capabilities=caps)

Ruby :

# Selenium 3 uses Marionette by default when firefox is specified
# Set Marionette in Selenium 2 by using the Capabilities class
# You might need to specify an alternate path for the desired version of Firefox

caps = Selenium::WebDriver::Remote::Capabilities.firefox marionette: true, firefox_binary: "/path/to/firefox"
driver = Selenium::WebDriver.for :remote, desired_capabilities: caps

Java :

DesiredCapabilities capabilities = DesiredCapabilities.firefox();

// Tell the Java bindings to use Marionette.
// This will not be necessary in the future,
// when Selenium will auto-detect what remote end
// it is talking to.
capabilities.setCapability("marionette", true);

WebDriver driver = new RemoteWebDriver(capabilities); 

. NET

DesiredCapabilities capabilities = DesiredCapabilities.Firefox();

// Tell the .NET bindings to use Marionette.
// This will not be necessary in the future,
// when Selenium will auto-detect what remote end
// it is talking to.
capabilities.SetCapability("marionette", true);

var driver = new RemoteWebDriver(capabilities); 

Hinweis: Genau wie die anderen Treiber, die Selenium von anderen Browser-Anbietern zur Verfügung stellt, hat Mozilla jetzt eine ausführbare Datei veröffentlicht, die neben dem Browser ausgeführt wird. Folgen Sie this für weitere Details.

Sie können die neueste ausführbare Geckodriver-Datei herunterladen, um die neueste Firefox-Version zu unterstützen

89
Saurabh Gaur
  1. Laden Sie den Gecko-Treiber von der Seleniumhq-Website herunter (Jetzt ist er auf GitHub verfügbar und Sie können ihn von Here ) herunterladen.
    1. Du wirst eine Zip (oder tar.gz) haben, also extrahiere sie.
    2. Nach dem Entpacken haben Sie die Datei geckodriver.exe (entsprechende ausführbare Datei unter Linux).
    3. Erstelle einen Ordner in C: mit dem Namen SeleniumGecko (oder entsprechend)
    4. Kopieren Sie die Datei geckodriver.exe und fügen Sie sie in SeleniumGecko ein
    5. Stellen Sie den Pfad für den Gecko-Treiber wie folgt ein

.

System.setProperty("webdriver.gecko.driver","C:\\geckodriver-v0.10.0-win64\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
19
Kanth25

Selenium WebDriver Java code:

Laden Sie den Gecko-Treiber von https://github.com/mozilla/geckodriver/releases basierend auf Ihrer Plattform herunter. Extrahieren Sie es an einem Ort Ihrer Wahl. Schreiben Sie den folgenden Code:

System.setProperty("webdriver.gecko.driver", "D:/geckodriver-v0.16.1-win64/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.lynda.com/Selenium-tutorials/Mastering-Selenium-Testing-Tools/521207-2.html");
2
Ripon Al Wasim

Jeder Treiberdienst in Selenium ruft beim Erstellen des Treiberobjekts den ähnlichen Code auf (im Folgenden ist der firefox-spezifische Code angegeben)

 @Override
 protected File findDefaultExecutable() {
      return findExecutable(
        "geckodriver", GECKO_DRIVER_EXE_PROPERTY,
        "https://github.com/mozilla/geckodriver",
        "https://github.com/mozilla/geckodriver/releases");
    }

jetzt müssen Sie für den Treiber, den Sie verwenden möchten, die Systemeigenschaft auf den Wert des Pfads für die ausführbare Treiberdatei festlegen.

für firefox GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver" und dies kann wie folgt eingestellt werden, bevor das Treiberobjekt erstellt wird

System.setProperty("webdriver.gecko.driver", "./libs/geckodriver.exe");
WebDriver driver = new FirefoxDriver();
0
chuha.billi