Daher habe ich alle Dokumente zum Hinzufügen von Chromdriver zu meinem Pfad gelesen und alle verfolgt. Ich bin mit Selenium2, Maven, Eclipse und allen aktuellen Treibern auf einem Mac:
Error:
The path to the chromedriver executable must be set by the webdriver.chrome.driver system property;
Ich habe Chromedriver in meinen Ordner "Applications" gestellt und mein Pfad sieht folgendermaßen aus:
echo $PATH
/Users/tcerrato/Selenium/BS_Sel_Project/auto_helper/test_scripts:/usr/local/Apache-maven-2.2.1//bin:/Users/Oracle/oracle/product/10.2.0/db_1/bin:/opt/local/bin:/opt/local/sbin:/Applications:
Was vermisse ich? Ich kann überhaupt nicht mit Chrome Driver laufen. Jede Hilfe wäre toll, ich versuche jetzt zufälliges Zeug.
Hier ist meine Pom-Sektion zu Selen:
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium</artifactId>
<version>2.0rc2</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-chrome-driver</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-firefox-driver</artifactId>
<version>2.6.0</version>
</dependency>
Ich bin nicht sicher über Maven, aber wie ich die Eigenschaft webdriver.chrome.driver einstelle
System.setProperty("webdriver.chrome.driver", "C:\\pathto\\my\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
Fügen Sie diese Abhängigkeit Ihrem Projekt hinzu:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
</dependency>
Diese Bibliothek lädt die neueste Version der WebDriver-Binärdatei herunter, die Sie benötigen, und exportiert die richtige Java-Systemvariable (webdriver.chrome.driver
, webdriver.gecko.driver
, webdriver.opera.driver
, phantomjs.binary.path
, webdriver.Edge.driver
, webdriver.ie.driver
). Verwenden Sie dazu einfach einen der folgenden Sätze:
WebDriverManager.chromedriver().setup();
WebDriverManager.firefoxdriver().setup();
WebDriverManager.operadriver().setup();
WebDriverManager.phantomjs().setup();
WebDriverManager.edgedriver().setup();
WebDriverManager.iedriver().setup();
Mehr Infos unter https://github.com/bonigarcia/webdrivermanager
Das Festlegen der webdriver.chrome.driver
-Systemeigenschaft über maven kann folgendermaßen erfolgen (und getestetes Arbeiten):
Fügen Sie dem maven-surefire-plugin
in Ihrem pom.xml
die systemPropertyVariables
-Konfiguration hinzu. Dies liegt (normalerweise) daran, dass surefire
der Aufrufer für Tests ist und die Systemeigenschaften festgelegt werden.
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<systemPropertyVariables>
<webdriver.chrome.driver>${webdriver.chrome}</webdriver.chrome.driver>
</systemPropertyVariables>
</configuration>
</plugin>
Definieren Sie jetzt irgendwo ${webdriver.chrome}
. Ein guter Anfang ist ein <properties>
-Abschnitt in Ihrem pom.xml
<properties>
<webdriver.chrome>/home/gede/bin/chromedriver</webdriver.chrome>
</properties>
Möglicherweise könnte dies durch die Verwendung von <profiles>
wie in Simon Martinellis Beispiel verbessert werden.
Sie können einen Versuch unternehmen, das Treiber-Binär-Downloader-Maven-Plugin zu verwenden, um die Treiber-Binärdateien für Sie herunterzuladen ( https://github.com/Ardesco/Selenium-standalone-server-plugin ):
<plugin>
<groupId>com.lazerycode.Selenium</groupId>
<artifactId>driver-binary-downloader-maven-plugin</artifactId>
<version>1.0.7</version>
<configuration>
<rootStandaloneServerDirectory>${project.basedir}/src/test/resources/Selenium_standalone_binaries</rootStandaloneServerDirectory>
<downloadedZipFileDirectory>${project.basedir}/src/test/resources/Selenium_standalone_zips</downloadedZipFileDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>Selenium</goal>
</goals>
</execution>
</executions>
</plugin>
Dadurch werden die Binärdateien heruntergeladen und eine Maven-Eigenschaft festgelegt, die Sie in Ihrer sicheren/ausfallsicheren Konfiguration wie folgt verwenden können:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.7.2</version>
<configuration>
<systemProperties>
<!--Set properties passed in by the driver binary downloader-->
<phantomjs.binary.path>${phantomjs.binary.path}</phantomjs.binary.path>
<webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
<webdriver.ie.driver>${webdriver.ie.driver}</webdriver.ie.driver>
<webdriver.opera.driver>${webdriver.opera.driver}</webdriver.opera.driver>
</systemProperties>
<includes>
<include>**/*WebDriver.Java</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
Wenn Sie ein neues Treiberobjekt instanziieren, wird jetzt die Systemeigenschaft festgelegt, die auf den binären Speicherort des Treibers verweist, und es funktioniert einfach.
Also im Pom musst du es so einstellen
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-chrome-driver</artifactId>
<version>2.34.0</version>
</dependency>
Dies ist ein Java-Code, um den Chrome mit Selenium auszuführen
System.setProperty("webdriver.chrome.driver","C:/chromedriver.exe");
WebDriver myD = new ChromeDriver();
Damit Sie Chrome ausführen können, müssen Sie den Chrome-Treiber hier herunterladen. https://code.google.com/p/chromedriver/downloads/list
Sobald Sie das getan haben, müssen Sie es in Umgebungsvariable setzen. Lesen Sie diese https://code.google.com/p/Selenium/wiki/ChromeDriver
Vielen Dank,
Mediha
Versuche dies:
System.setProperty("webdriver.chrome.driver","/location to/chromedriver folder");
WebDriver driver = new ChromeDriver();
driver.get("your.app");
System.setproperty("webdriver.chrome.driver","your file path here with chromedriver.exe");
webDriver driver=new chromeDriver();
driver.get("http://google.com");
Es funktioniert für mich, ohne webdriver.chrome.driver
-Eigenschaft festzulegen. Einfach durch Hinzufügen von Chromdriver zu PATH
> echo $PATH
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin
>
> which chromedriver
/usr/local/bin/chromedriver
Wenn Sie Homebrew verwenden, können Sie den Chromedriver zusammen mit dem Hinzufügen von PATH so einfach installieren:
brew install chromedriver
Nützliche Links: