2012-06-29 4 views
7

Ho un'esecuzione di selenio guidata da web java che esegue un ciclo su un elenco per immettere informazioni diverse in una casella di testo e inviarlo utilizzando FirefoxDriver.Selenio abotring con "UnreachableBrowserException/Address già in uso" che si verificano su un computer

Su un computer, abbastanza riproducibile, dopo la decima o l'undicesima iterazione, la chiamata di findElement(By.id("mi4")) genera un numero 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) 

Nessun programma di terze parti in ascolto su nessuna porta. Tuttavia, io uso due istanze di FirefoxDriver, ovvero due istanze di Firefox/Windows aperte in parallelo, che funzionano senza problemi su una macchina Win7, il problema descritto si verifica su una macchina Windows XP.

Io uso Firefox 13 con selenio 2.24.1.

risposta

7

Sembra che si stiano esaurendo le porte effimere poiché si sta ripetendo più volte. Il numero massimo predefinito di porte TCP effimere è 5000 in Windows XP. Prova ad aumentare il limite in base alla risoluzione nell'articolo KB Microsoft here. Riavvia la macchina. Questa soluzione ha funzionato per me.

+0

Grazie, ci proverò. Immagino che le porte siano usate dal selenio quando comunicano con il browser? Non li riutilizzeranno? Ho solo due istanze di FirefoxDriver ... – stracktracer

+0

Ha funzionato. Ancora chiedendo perché così tante connessioni sono aperte. – stracktracer

+0

Ho affrontato questo problema molte volte durante l'esecuzione di casi di test del selenio utilizzando jenkins. Non ho mai pensato a questo come alla ragione del problema. Risposta davvero bella –

Problemi correlati