2012-07-05 24 views
6

Necesito probar con el controlador de selenium chrome en Java. Pero la ventana cromada no se puede abrir. Asuma que es un producto y que no se debe abrir ninguna ventana.Prueba con un controlador de selenio en Java sin abrir ningún navegador

También he visto este; Is it possible to hide the browser in Selenium RC? Pero no hay solución para mí. Las pruebas deben ser independientes del sistema operativo y he probado HtmlUnitDriver para probar sin abrir ninguna ventana, pero tiene algún problema. Cuando hay componentes encontrados por id, es posible que no encuentre el componente por id. Algunos servidores pueden enviar la identificación del componente de acuerdo con el navegador y no puedo saber qué id debo usar para probar.

Por eso estoy tratando de usar el controlador de Chrome.

¿Hay alguna manera de utilizar chromedriver sin abrir la ventana de cromo u otra forma de probar sin abrir ninguna ventana con Selenium en Java?

¡Gracias!

+0

Como creo que el selenio utiliza el motor de DOM de los navegadores, no creo que ocultar la ventana de un controlador específico del navegador es posible. – Avery

+0

La respuesta aceptada en la pregunta vinculada enumera todas las posibilidades que conozco. Intente darle una oportunidad más a HtmlUnitDriver, pero [asegúrese de tener habilitado el soporte de JavaScript] (http://code.google.com/p/selenium/wiki/HtmlUnitDriver).Si desea específicamente Chrome, tendrá que ir con Saucelabs, Linux y un controlador sin cabeza, o la llamada remota mencionada a una computadora diferente que ejecuta la prueba. –

Respuesta

6

Vaya con PhantomJS pero si es necesario ejecutarlos en ChromeSriver y tiene los recursos, este blog tiene una buena receta en running headless selenium with chrome. Que requiere que usted descargue el siguiente ...

  • VirtualBox
  • Vagrant
  • NodeJS

Si va a aplicar Jenkins o cualquier otro IC en el futuro, te sugiero ir con PhantomJS aunque.

0

Me gusta article.

Básicamente es necesario agregar PhantomJS dependencia en POM (me gusta experto para la gestión de la dependencia):

<dependency> 
    <groupId>com.github.detro.ghostdriver</groupId> 
    <artifactId>phantomjsdriver</artifactId> 
    <version>1.1.0</version> 
</dependency> 

y ejecutar código

System.setProperty("phantomjs.binary.path", "c:\\path\\to\\phantomjs-1.9.8-windows\\phantomjs.exe"); 
    WebDriver driver = new PhantomJSDriver(); 
    driver.get("http://www.google.com"); 
    driver.quit(); 

Se trabajó para mí con versiones:

  • PhantomJS 1.9.8
  • PhantomJS driver 1.1.0
  • selenio 2.44.0
0

Conductora web selenio existe un modo sin cabeza. entonces en el modo sin cabeza puede hacer la automatización sin abrir el navegador web. y también se puede implementar la aplicación en ninguno sistema de interfaz gráfica de usuario

ChromeOptions options = new ChromeOptions(); 
    // setting headless mode to true.. so there isn't any ui 
    options.setHeadless(true); 

    // Create a new instance of the Chrome driver 
    WebDriver driver = new ChromeDriver(options); 
+1

Si bien este fragmento de código puede resolver la pregunta, [incluyendo una explicación] (http://meta.stackexchange.com/questions/114762/explaining-entirely-coded-based-answers) realmente ayuda a mejorar la calidad de su enviar. Recuerde que usted está respondiendo la pregunta a los lectores en el futuro, y es posible que esas personas no sepan los motivos de su sugerencia de código. –

Cuestiones relacionadas