webelement org openqa dependencias chromedriver maven selenium webdriver selenium-webdriver

org - selenium webdriver maven



driver de cromo selenio 2 (10)

Añade esta dependencia a tu proyecto:

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

Esta biblioteca descarga la última versión del binario de WebDriver que necesita y exporta la variable de sistema Java adecuada ( webdriver.chrome.driver , webdriver.gecko.driver , webdriver.opera.driver , phantomjs.binary.path , webdriver.edge.driver , webdriver.ie.driver ), simplemente usando una de las siguientes oraciones respectivamente:

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

Más información en https://github.com/bonigarcia/webdrivermanager

Así que he leído todos los documentos sobre la adición de chromedriver a mi camino y los seguí todos. Estoy en una Mac con selenio 2, maven, eclipse y todos los controladores más recientes:

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

Pongo Chromedriver en mi carpeta de aplicaciones y mi ruta se ve así:

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é me estoy perdiendo? No puedo ejecutar con el controlador de cromo en absoluto. Cualquier ayuda sería genial. Estoy intentando cosas al azar ahora.

Aquí está mi sección de pom sobre el selenio:

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


Así que en el pom hay que configurarlo así.

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

Este es un código java para ejecutar el cromo usando selenio.

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

Para poder ejecutar Chrome, debe descargar el controlador de Chrome desde aquí. https://code.google.com/p/chromedriver/downloads/list

Una vez que haya hecho eso, entonces debe configurarlo en la variable de entorno. Lea este https://code.google.com/p/selenium/wiki/ChromeDriver

Gracias,

Mediha


Funciona para mí sin configurar la propiedad webdriver.chrome.driver . Simplemente agregando chromedriver a PATH

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

Si usa Homebrew, la instalación de chromedriver junto con la adición a PATH se puede hacer de la siguiente manera:

brew install chromedriver

Enlaces útiles:

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

http://brewformulas.org/Chromedriver


La configuración de la propiedad del sistema webdriver.chrome.driver través de maven se puede hacer de la siguiente manera (y probado):

  1. Agregue la configuración systemPropertyVariables al maven-surefire-plugin en su pom.xml . Esto es (normalmente) porque surefire es la persona que llama para las pruebas y dónde se establecerán las propiedades del sistema.

    <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. Ahora define ${webdriver.chrome} alguna parte. Un buen comienzo es una sección <properties> en su pom.xml

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

Potencialmente, esto podría hacerse mejor mediante el uso de <profiles> como en el example Simon Martinelli


No estoy seguro de Maven, pero así es como configuro la propiedad webdriver.chrome.driver

System.setProperty("webdriver.chrome.driver", "C://pathto//my//chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com");


Prueba esto:

System.setProperty("webdriver.chrome.driver","/location to/chromedriver folder"); WebDriver driver = new ChromeDriver(); driver.get("your.app");


Puede utilizar el complemento binario del programa de descarga de controladores para descargar los archivos binarios del controlador para usted ( 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>

Esto descargará los binarios y establecerá una propiedad de Maven que puede usar en su configuración de surefire / failafe de esta manera:

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

Cuando crea una instancia de un nuevo objeto de controlador, la propiedad del sistema que apunta a la ubicación binaria del controlador ahora se establecerá y solo funcionará.


Simplemente agregue WebDriverManager en su maven pom y funciona sin configuración manual si tiene la configuración de su navegador en la configuración predeterminada.


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!" ); } }


System.setproperty("webdriver.chrome.driver","your file path here with chromedriver.exe"); webDriver driver=new chromeDriver(); driver.get("http://google.com");