J'ai donc lu toutes les documentations sur l'ajout de chromedriver à mon parcours et les ai suivies. Je suis sur un Mac avec Selenium2, Maven, Eclipse et tous les derniers pilotes:
Error:
The path to the chromedriver executable must be set by the webdriver.chrome.driver system property;
J'ai placé chromedriver dans mon dossier Applications et mon chemin ressemble à ceci:
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:
Qu'est-ce que je rate? Je ne peux pas du tout utiliser un pilote chromé. Toute aide serait formidable. J'essaie des trucs au hasard maintenant.
Voici ma section de pom sur le sélénium:
<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>
Je ne suis pas sûr de Maven, mais voici comment définir la propriété webdriver.chrome.driver
System.setProperty("webdriver.chrome.driver", "C:\\pathto\\my\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
Ajoutez cette dépendance à votre projet:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
</dependency>
Cette bibliothèque télécharge la dernière version du fichier binaire WebDriver dont vous avez besoin et exporte la variable système Java appropriée (webdriver.chrome.driver
, webdriver.gecko.driver
, webdriver.opera.driver
, phantomjs.binary.path
, webdriver.Edge.driver
, webdriver.ie.driver
) en utilisant respectivement l'une des phrases suivantes:
WebDriverManager.chromedriver().setup();
WebDriverManager.firefoxdriver().setup();
WebDriverManager.operadriver().setup();
WebDriverManager.phantomjs().setup();
WebDriverManager.edgedriver().setup();
WebDriverManager.iedriver().setup();
Plus d'infos sur https://github.com/bonigarcia/webdrivermanager
La définition de la propriété système webdriver.chrome.driver
via maven peut être effectuée de la manière suivante (et testée):
Ajoutez la configuration systemPropertyVariables
au maven-surefire-plugin
dans votre pom.xml
. C'est (généralement) parce que surefire
est l'appelant pour les tests et que les propriétés du système seront définies.
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<systemPropertyVariables>
<webdriver.chrome.driver>${webdriver.chrome}</webdriver.chrome.driver>
</systemPropertyVariables>
</configuration>
</plugin>
Définissez maintenant ${webdriver.chrome}
quelque part. Un bon début est une section <properties>
dans votre pom.xml
<properties>
<webdriver.chrome>/home/gede/bin/chromedriver</webdriver.chrome>
</properties>
Cela pourrait potentiellement être amélioré via l'utilisation de <profiles>
comme dans Simon Martinelli/ exemple
Vous pouvez utiliser le plugin maven du programme de téléchargement du pilote binaire pour télécharger les fichiers binaires du pilote pour vous ( 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>
Cela téléchargera les fichiers binaires et définira une propriété maven que vous pourrez utiliser dans votre configuration surefire/failafe comme ceci:
<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>
Lorsque vous instanciez un nouvel objet de pilote, la propriété système pointant vers l'emplacement binaire du pilote sera désormais définie et fonctionnera simplement.
Donc, dans le pom, vous devez le définir comme ça
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-chrome-driver</artifactId>
<version>2.34.0</version>
</dependency>
Ceci est un code Java pour exécuter le chrome en utilisant Selenium
System.setProperty("webdriver.chrome.driver","C:/chromedriver.exe");
WebDriver myD = new ChromeDriver();
Pour pouvoir utiliser Chrome, vous devez télécharger le pilote Chrome à partir d’ici. https://code.google.com/p/chromedriver/downloads/list
Une fois que vous avez fait cela, vous devez le définir dans la variable d'environnement. Lisez ceci https://code.google.com/p/Selenium/wiki/ChromeDriver
Merci,
Mediha
Essaye ça:
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");
Cela fonctionne pour moi sans définir la propriété webdriver.chrome.driver
. Juste en ajoutant chromedriver à PATH
> echo $PATH
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin
>
> which chromedriver
/usr/local/bin/chromedriver
Si vous utilisez Homebrew, l’installation de chromedriver et l’ajout à PATH peuvent se faire de la manière suivante:
brew install chromedriver
Liens utiles: