validar - selenium ventajas y desventajas
¿Cómo ejecutar los casos de prueba de Selenium WebDriver en Chrome? (10)
Debe descargar el chromeDriver en una carpeta y agregar esta carpeta en su variable PATH. Tendrás que reiniciar tu consola para que funcione.
Intenté esto
WebDriver driver = new ChromeDriver();
Pero estoy obteniendo el error como
Pruebas fallidas: setUp (com.TEST): la ruta al ejecutable del controlador debe establecerse mediante la propiedad del sistema webdriver.chrome.driver; para obtener más información, consulte http://code.google.com/p/selenium/wiki/ChromeDriver . La última versión se puede descargar de http://code.google.com/p/chromedriver/downloads/list
¿Cómo puedo hacer que Chrome pruebe los casos de prueba de Selenium-WebDriver?
Descargue el exe de chromedriver y extráigalo en la ubicación actual del proyecto. Aquí el enlace, donde podemos descargar la última versión de chromedriver.
https://sites.google.com/a/chromium.org/chromedriver/
Aquí el código simple para el navegador de inicio y navegue a url.
System.setProperty("webdriver.chrome.driver", "path of chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://any_url.com");
Descargue la última versión del controlador de Chrome y use este código:
System.setProperty("webdriver.chrome.driver", " path of chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.manage().window().maximize();
Thread.sleep(10000);
driver.get("http://.com");
Descargue la versión de actualización del controlador de Chrome desde http://code.google.com/p/chromedriver/downloads/list
public class Chrome {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "E://chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
}
}
También puede ver la respuesta después de hacer clic here
Encuentre la última versión de chromedriver
aquí . Una vez descargado, descomprímelo en la raíz de su instalación de Python, por ej. C:/Program Files/Python-3.5
, y listo. Ni siquiera necesita especificar la ruta en cualquier lugar y / o agregar chromedriver
a su ruta o similar. Acabo de hacerlo en una instalación limpia de Python y eso funciona.
Puede usar el siguiente código para ejecutar casos de prueba en Chrome utilizando el controlador web Selenium:
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ChromeTest {
/**
* @param args
* @throws InterruptedException
* @throws IOException
*/
public static void main(String[] args) throws InterruptedException, IOException {
// Telling the system where to find the Chrome driver
System.setProperty(
"webdriver.chrome.driver",
"E:/chromedriver_win32/chromedriver.exe");
WebDriver webDriver = new ChromeDriver();
// Open google.com
webDriver.navigate().to("http://www.google.com");
String html = webDriver.getPageSource();
// Printing result here.
System.out.println(html);
webDriver.close();
webDriver.quit();
}
}
Si está utilizando homebrew en una MacOS, puede usar el comando:
brew install chromedriver
Debería funcionar bien después de eso sin otra configuración.
Todas las respuestas anteriores son correctas, a continuación se presenta una pequeña inmersión profunda en el problema y la solución.
El constructor del controlador en selenio por ejemplo
WebDriver driver = new ChromeDriver();
busca el ejecutable del controlador, en este caso, el controlador de Chrome busca el ejecutable del controlador de Chrome; en caso de que el servicio no pueda encontrar el ejecutable, se lanza la excepción
aquí es de donde proviene la excepción (observe el método de verificación de estado)
/**
*
* @param exeName Name of the executable file to look for in PATH
* @param exeProperty Name of a system property that specifies the path to the executable file
* @param exeDocs The link to the driver documentation page
* @param exeDownload The link to the driver download page
*
* @return The driver executable as a {@link File} object
* @throws IllegalStateException If the executable not found or cannot be executed
*/
protected static File findExecutable(
String exeName,
String exeProperty,
String exeDocs,
String exeDownload) {
String defaultPath = new ExecutableFinder().find(exeName);
String exePath = System.getProperty(exeProperty, defaultPath);
checkState(exePath != null,
"The path to the driver executable must be set by the %s system property;"
+ " for more information, see %s. "
+ "The latest version can be downloaded from %s",
exeProperty, exeDocs, exeDownload);
File exe = new File(exePath);
checkExecutable(exe);
return exe;
}
A continuación está el método de estado de verificación que arroja la excepción
/**
* Ensures the truth of an expression involving the state of the calling instance, but not
* involving any parameters to the calling method.
*
* <p>See {@link #checkState(boolean, String, Object...)} for details.
*/
public static void checkState(
boolean b,
@Nullable String errorMessageTemplate,
@Nullable Object p1,
@Nullable Object p2,
@Nullable Object p3) {
if (!b) {
throw new IllegalStateException(format(errorMessageTemplate, p1, p2, p3));
}
}
SOLUCIÓN : configure la propiedad del sistema antes de crear el objeto del controlador de la siguiente manera
System.setProperty("webdriver.gecko.driver", "path/to/chromedriver.exe");
WebDriver driver = new ChromeDriver();
El siguiente es el fragmento de código (para Chrome y Firefox) donde el servicio del controlador busca el ejecutable del controlador:
Cromo:
@Override
protected File findDefaultExecutable() {
return findExecutable("chromedriver", CHROME_DRIVER_EXE_PROPERTY,
"https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver",
"http://chromedriver.storage.googleapis.com/index.html");
}
Firefox:
@Override
protected File findDefaultExecutable() {
return findExecutable(
"geckodriver", GECKO_DRIVER_EXE_PROPERTY,
"https://github.com/mozilla/geckodriver",
"https://github.com/mozilla/geckodriver/releases");
}
donde CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver" y GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver"
similar es el caso de otros navegadores, a continuación se muestra una instantánea de la lista de implementación del navegador disponible
Debe descargar el controlador ejecutable desde: Descargar ChromeDriver
Luego, todo lo que necesita hacer es usar lo siguiente antes de crear el objeto del controlador (ya se muestra en el orden correcto):
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");
WebDriver driver = new ChromeDriver();
Esto se extrajo de la guía más útil en: https://sites.google.com/a/chromium.org/chromedriver/