le sélénium 2 chrome pilote
J'ai donc lu tous les docs sur l'ajout de chromedriver à mon chemin et je les ai tous suivis. Je suis sur un Mac avec selenium2, maven, eclipse, et tous les pilotes les plus récents:
Error:
The path to the chromedriver executable must be set by the webdriver.chrome.driver system property;
j'ai mis chromedriver dans mon dossier Applications, et mon chemin ressemble à:
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:
Ce qui me manque? Je ne peux pas courir avec chrome driver. N'importe quelle aide serait super j'essaye des trucs au hasard maintenant.
voici ma section 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>
10 réponses
Je ne suis pas sûr de Maven mais c'est comme ça que j'ai mis la propriété webdriver.chrome.pilote
System.setProperty("webdriver.chrome.driver", "C:\pathto\my\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
Ajouter cette dépendance à votre projet:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.0.0</version>
</dependency>
cette bibliothèque télécharge la dernière version du binaire WebDriver dont vous avez besoin et exportez la variable appropriée du système Java (webdriver.chrome.driver
, webdriver.gecko.driver
,webdriver.opera.driver
,phantomjs.binary.path
,webdriver.edge.driver
,webdriver.ie.driver
), en utilisant simplement l'une des phrases suivantes respectivement:
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
webdriver.chrome.driver
la propriété du système via maven peut être effectuée par les moyens suivants (et testée):
Ajouter
systemPropertyVariables
configurationmaven-surefire-plugin
dans votrepom.xml
. C'est (typiquement) parce quesurefire
est l'appelant pour les tests et où les propriétés du système.<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éfinir
${webdriver.chrome}
quelque part. Un bon début est un<properties>
sectionpom.xml
<properties> <webdriver.chrome>/home/gede/bin/chromedriver</webdriver.chrome> </properties>
Potentiellement ceci pourrait être fait mieux en utilisant <profiles>
comme dans Simon Martinelli exemple
<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>
ceci va télécharger les binaires et définir une propriété maven que vous pouvez utiliser dans votre configuration surefire / failsafe 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 pilote, la propriété système pointant vers l'emplacement binaire du pilote sera maintenant définie et le tout fonctionne.
donc dans la pom vous devez le mettre comme ceci
<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 exécuter 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. Lire ce https://code.google.com/p/selenium/wiki/ChromeDriver
Merci,
Mediha
System.setproperty("webdriver.chrome.driver","your file path here with chromedriver.exe");
webDriver driver=new chromeDriver();
driver.get("http://google.com");
essaye ceci:
System.setProperty("webdriver.chrome.driver","/location to/chromedriver folder");
WebDriver driver = new ChromeDriver();
driver.get("your.app");
Ça marche pour moi sans paramètre webdriver.chrome.driver
propriété. 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 avec l'ajout au chemin peut être fait aussi simple que ceci:
brew install chromedriver
liens Utiles:
il suffit d'ajouter WebDriverManager dans votre Maven pom et il fonctionne sans configuration manuelle si vous avez la configuration de votre navigateur dans la configuration par défaut.
Pom.xml code and Selenium code below:
<groupId>com.HelloWorld</groupId>
<artifactId>t</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>t</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<webdriver.chrome>/home/gede/bin/chromedriver</webdriver.chrome>
</properties>
<build>
<resources>
<resource>
<directory>src/main/java/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<systemPropertyVariables>
<webdriver.chrome.driver>${webdriver.chrome}
</webdriver.chrome.driver>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-
chrome-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.8.1</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>com.relevantcodes</groupId>
<artifactId>extentreports</artifactId>
<version>2.41.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
</dependencies>
</project>
Selenuim Code
public class App
{
static String currentDir = System.getProperty("user.dir");
static WebDriver driver;
@BeforeClass
public static void setupClass() {
ChromeDriverManager.getInstance().setup();
driver= new ChromeDriver();
driver.get("https://www.google.com/");
}
@Test
public void test() {
System.out.println( "Hello World!" );
}
}