2012-06-29 9 views
7

Tengo una ejecución de selenio manejada por webDave de Java que hace un ciclo sobre una lista para ingresar información diferente en un cuadro de texto y enviarlo usando FirefoxDriver.Selenium abotring con "UncachableBrowserException/Address already in use" que se encuentra en una computadora

En una computadora, bastante reproducible, después de la 10ª u 11ª iteración, la llamada de findElement(By.id("mi4")) levanta un UnreachableBrowserException.

Jun 29, 2012 1:52:02 PM org.apache.http.impl.client.DefaultRequestDirector tryConnect 
Information: I/O exception (java.net.BindException) caught when connecting to the target host: Address already in use: connect 
Jun 29, 2012 1:52:02 PM org.apache.http.impl.client.DefaultRequestDirector tryConnect 
Information: Retrying connect 
Jun 29, 2012 1:52:02 PM org.apache.http.impl.client.DefaultRequestDirector tryConnect 
Information: I/O exception (java.net.BindException) caught when connecting to the target host: Address already in use: connect 
... 
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died. 
Build info: version: '2.24.1', revision: '17205', time: '2012-06-19 15:28:49' 
System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.7.0_04' 
Driver info: driver.version: RemoteWebDriver 
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:467) 
    at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:242) 
Caused by: java.net.BindException: Address already in use: connect 
    at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) 
    at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:337) 
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:297) 
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:136) 

No hay un programa de terceros escuchando en ningún puerto. Sin embargo, uso dos instancias de FirefoxDriver, es decir, dos instancias de Firefox/Windows abierto en paralelo, que funciona sin ningún problema en una máquina Win7, el problema descrito se produce en una máquina con Windows XP.

Uso Firefox 13 con selenio 2.24.1.

Respuesta

7

Parece que se está quedando sin puertos efímeros ya que está iterando una y otra vez. El número máximo predeterminado de puertos TCP efímeros es 5000 en Windows XP. Intente aumentar el límite según la resolución en el artículo de Microsoft KB here. Reinicia la máquina. Esta solución ha funcionado para mí.

+0

Gracias, intentaré esto. Supongo que los puertos son utilizados por el selenio cuando se comunica con el navegador. ¿No los reutilizarán? Solo tengo dos instancias de FirefoxDriver ... – stracktracer

+0

Eso funcionó. Todavía me pregunto por qué se abren tantas conexiones. – stracktracer

+0

Me he enfrentado a este problema muchas veces al ejecutar casos de prueba de selenio utilizando jenkins. Nunca pensé en esto como la razón del problema. Muy buena respuesta. –

Cuestiones relacionadas