web-dev-qa-db-fra.com

conducteur de sélénium 2 chrome

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>
19
ducati1212

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");
21
nilesh

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

31
Boni García

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):

  1. 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>
    
  2. 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

10
jeedo

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.

6
Ardesco

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
2
Madi

Essaye ça:

System.setProperty("webdriver.chrome.driver","/location to/chromedriver folder");
WebDriver driver = new ChromeDriver();
driver.get("your.app");
0
user1307037
System.setproperty("webdriver.chrome.driver","your file path here with chromedriver.exe");
webDriver driver=new chromeDriver();
driver.get("http://google.com");
0
Mallanna R.B

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:

https://sites.google.com/a/chromium.org/chromedriver/

http://brewformulas.org/Chromedriver

0
Andrey