селен 2 хромовый драйвер - PullRequest
       12

селен 2 хромовый драйвер

19 голосов
/ 17 сентября 2011

Итак, я прочитал все документы по добавлению chromedriver к моему пути и следовал всем им. Я на Mac с selenium2, maven, eclipse и всеми последними драйверами:

Error:
The path to the chromedriver executable must be set by the webdriver.chrome.driver system property;

Я помещаю chromedriver в папку «Программы», и мой путь выглядит следующим образом:

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:

Чего мне не хватает? Я не могу работать с драйвером Chrome вообще. Любая помощь была бы отличной, я сейчас пробую что-то случайное.

Вот мой раздел о селене:

<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 ]

31 голосов
/ 11 апреля 2015

Добавьте эту зависимость в ваш проект:

<dependency>
   <groupId>io.github.bonigarcia</groupId>
   <artifactId>webdrivermanager</artifactId>
    <version>3.6.2</version>
</dependency>

Эта библиотека загружает последнюю необходимую версию двоичного файла WebDriver и экспортирует правильную системную переменную Java (webdriver.chrome.driver, webdriver.gecko.driver, webdriver.opera.driver, phantomjs.binary.path, webdriver.edge.driver, webdriver.ie.driver), просто используя одно из следующих предложений соответственно:

WebDriverManager.chromedriver().setup();
WebDriverManager.firefoxdriver().setup();
WebDriverManager.operadriver().setup();
WebDriverManager.phantomjs().setup();
WebDriverManager.edgedriver().setup();
WebDriverManager.iedriver().setup();

Подробнее о https://github.com/bonigarcia/webdrivermanager

21 голосов
/ 17 сентября 2011

Я не уверен насчет Maven, но вот как я устанавливаю свойство webdriver.chrome.driver

System.setProperty("webdriver.chrome.driver", "C:\\pathto\\my\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
10 голосов
/ 21 августа 2012

Установка системного свойства webdriver.chrome.driver через maven может быть выполнена следующим образом (и проверена):

  1. Добавьте systemPropertyVariables конфигурацию к maven-surefire-plugin в вашем pom.xml. Это (как правило), потому что surefire является вызывающим для тестов и где будут установлены системные свойства.

    <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. Теперь определите где-нибудь ${webdriver.chrome}. Хорошее начало - это раздел <properties> в вашем pom.xml

    <properties>
        <webdriver.chrome>/home/gede/bin/chromedriver</webdriver.chrome>
    </properties>
    

Потенциально это можно было бы сделать лучше с помощью <profiles>, как в примере Саймона Мартинелли

6 голосов
/ 11 апреля 2015

Вы можете попробовать использовать плагин maven для двоичного загрузчика драйверов, чтобы загрузить двоичные файлы драйверов для вас (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>

Это загрузит двоичные файлы и установит свойство maven, которое вы можете использоватьв вашей безошибочной / отказоустойчивой конфигурации, подобной этой:

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

Когда вы создаете экземпляр нового объекта драйвера, системное свойство, указывающее на двоичное расположение драйвера, теперь будет установлено, и оно будет работать.

2 голосов
/ 19 августа 2013

Так что в pom вы должны установить его так:

                  <dependency>
                  <groupId>org.seleniumhq.selenium</groupId>
                  <artifactId>selenium-chrome-driver</artifactId>
                  <version>2.34.0</version>
                  </dependency>

Это код Java для запуска Chrome с использованием selenium

        System.setProperty("webdriver.chrome.driver","C:/chromedriver.exe");
        WebDriver myD = new ChromeDriver();

Для того, чтобы запустить ChromeВам нужно скачать драйвер Chrome отсюда.https://code.google.com/p/chromedriver/downloads/list

Как только вы это сделаете, вы должны будете установить его в переменной окружения.Прочитайте это https://code.google.com/p/selenium/wiki/ChromeDriver

Спасибо,

       Mediha
0 голосов
/ 28 января 2018
    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!" );

    }
  }
0 голосов
/ 06 февраля 2016

У меня работает без установки свойства webdriver.chrome.driver. Просто добавив chromedriver в PATH

> echo $PATH
/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin
>    
> which chromedriver
/usr/local/bin/chromedriver

Если вы используете Homebrew, установить chromedriver вместе с добавлением в PATH можно так же просто, как это:

brew install chromedriver

Полезные ссылки:

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

http://brewformulas.org/Chromedriver

0 голосов
/ 31 августа 2015

Просто добавьте WebDriverManager в вашу maven pom, и он будет работать без ручной настройки, если у вас настроен браузер в конфигурации по умолчанию.

0 голосов
/ 11 февраля 2013
System.setproperty("webdriver.chrome.driver","your file path here with chromedriver.exe");
webDriver driver=new chromeDriver();
driver.get("http://google.com");
0 голосов
/ 13 июня 2012

Попробуйте это:

System.setProperty("webdriver.chrome.driver","/location to/chromedriver folder");
WebDriver driver = new ChromeDriver();
driver.get("your.app");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...