2012-06-25 24 views
5

Actualmente estoy ejecutando mis pruebas con RemoteWebDriver con Selenium Grid 2 a través de suites TestNG. Esto funciona bien con Firefox y IE. Ahora agregué Chrome y las pruebas funcionan bien, pero siempre obtengo una excepción al llamar a driver.quit() después de todas las pruebas de un conjunto (funciona bien para FF e IE).¿Cómo cerrar un ChromeDriver cuando se ejecuta en Grid?

La excepción es así:

Error communicating with the remote browser. It may have died. 
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)  
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:188) 
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476) 
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346) 
at setups.StandardChromeSetup.tearDown(StandardChromeSetup.java:42) 
19 lines not shown 

Caused by Error communicating with the remote browser. It may have died. 
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:467) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:476) 
at org.openqa.selenium.remote.RemoteWebDriver.quit(RemoteWebDriver.java:346) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101) 
at $Proxy1.quit(Unknown Source) 
at org.openqa.selenium.support.events.EventFiringWebDriver.quit(EventFiringWebDriver.java:194) 
at org.openqa.selenium.remote.server.handler.DeleteSession.call(DeleteSession.java:42) 
at org.openqa.selenium.remote.server.handler.DeleteSession.call(DeleteSession.java:1) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:150) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:722) 

estoy usando selenio versión 2.24.1 y chromedriver.exe 21.0.1180.4

EDITAR

Código de tearDown:

@AfterSuite 
public void tearDown(){ 
    driver.quit(); 
} 

Funciona perfectamente para F F e IE con RemoteDriver y sin. Pero no para Chrome.

+0

Puede publicar el código en setups.StandardChromeSetup.tearDown –

+0

agregó la información sobre tearDown no es nada lujoso – Tarken

+0

misma configuración y el mismo problema aquí- También recibo un mensaje de error que dice que chromedriver.exe ya no funciona, cuando confirmo Google Chrome es asesinado. –

Respuesta

3

Ha tenido el mismo problema. Here es cómo lo resolví. Esto parece ser un error con la nueva versión del controlador de Chrome. Usar la versión anterior del controlador (20.0.1133.0) resolvió este problema para mí.

Compruebe el driver download page.

+0

Actualmente estoy de vacaciones, así que no puedo probarlo ;-) Cuando regrese al trabajo y funciona, aceptaré su respuesta. Gracias – Tarken

2

Veo que la causa de esto puede ser que no está cerrando los navegadores activos antes de salir del Driver. Trate de cerrar las ventanas, que pueden ser la causa de algunas excepciones, con el siguiente código:

Driver.Close(); 
Driver.Quit(); 

Esto debería resolver su problema.

+0

Recibo el mismo problema, pero llamar a Close() antes de salir() no ayudó. – legion

Cuestiones relacionadas