google-chrome - for - selenium chromedriver c#
EjecuciĆ³n de Chrome WebDriver en un servidor Linux sin pantalla (3)
Me enfrentaba al mismo desafío de configurar un linux box con selenio + cromedriver, y aquí están mis notas:
Prerrequisitos:
Instalar JRE para ejecutar el contenedor de selenio
Instala el servidor de selenio
tomar el archivo jar de https://code.google.com/p/selenium/downloads/list )
Instala xvfb (parece que ya has logrado esta parte)
Instala google-chrome para tu distribución de Linux
Descargue el controlador de Chrome. Puede obtenerlo desde aquí: https://sites.google.com/a/chromium.org/chromedriver/downloads
Instale otras dependencias de selenio que pueda necesitar (pero lo anterior es el mínimo para que funcione el cromedriver)
Correr:
- Ejecute xvfb
Xvfb :1 -screen 5 1024x768x8 &
export DISPLAY=:1.5
- Ejecute el jar del servidor de selenio con las opciones de ChromeDriver. Se verá algo como esto:
java -jar selenium-server-standalone-2.30.0.jar -Dwebdriver.chrome.bin=/path/to/google-chrome -Dwebdriver.chrome.driver=/path/to/chromedriver
- El registro del servidor de selenio debería mostrar algo similar a esto:
Mar 19, 2013 10:07:27 AM org.openqa.grid.selenium.GridLauncher main INFO: Lanzamiento de un servidor independiente
Establecer la propiedad del sistema webdriver.chrome.bin en {location of google-chrome}
Establecer la propiedad del sistema webdriver.chrome.driver en {ubicación de chromedriver}
10: 07: 34.258 INFO: las instancias de RemoteWebDriver deben conectarse a:
http://127.0.0.1:4444/wd/hub
10: 07: 34.259 INFO - Versión Jetty / 5.1.x 10: 07: 34.259 INFO - Comenzó HttpContext [/ selenium-server / driver, / selenium-server / driver] ...
Referencia: http://www.yann.com/en/use-xvfb-selenium-and-chrome-to-drive-a-web-browser-in-php-23/08/2012.html
¡Aclamaciones!
Me gustaría ejecutar pruebas automatizadas usando el controlador web chrome de selenium2 en un servidor Linux.
Ya configuré Firefox para ejecutar en el servidor usando Xvfb (Ver http://www.semicomplete.com/blog/geekery/xvfb-firefox.html ) y me gustaría hacer algo similar con Chrome. es posible?
No he podido encontrar la manera de hacerlo programáticamente para el ChromeDriver como puede hacerlo con FirefoxBinary.
He enviado una solicitud de mejora que tiene un parche adjunto para permitir esto. Puede verlo aquí: http://code.google.com/p/selenium/issues/detail?id=2673
Editar: Puede ver a continuación la respuesta de Stephen sobre cómo usar esto ahora que el cambio se ha fusionado .: https://.com/a/16619608/998442
Según SetEnvironmentProperty a ChromeDriver programáticamente , puede hacer lo siguiente:
service = new ChromeDriverService.Builder()
.usingChromeDriverExecutable(new File("/path/to/chromedriver"))
.usingAnyFreePort()
.withEnvironment(ImmutableMap.of("DISPLAY",":20"))
.build();
Aquí está la documentación para withEnvironment