2012-06-29 7 views
7

Posiadam selen uruchamiany przez webdrive java, który wykonuje pętlę nad listą w celu wprowadzenia różnych informacji do pola tekstowego i wysłania go za pomocą FirefoxDriver.Selen abotring z "UnreachableBrowserException/Address już w użyciu" występujący na jednym komputerze

Na jednym komputerze, dość powtarzalnym, po 10. lub 11. iteracji, wywołanie findElement(By.id("mi4")) podnosi 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) 

Na żadnym porcie nie ma możliwości słuchania programów innych firm. Jednak używam dwóch wystąpień FirefoxDriver, co oznacza, że ​​dwie instancje Firefox/Windows otwarte równolegle, który działa bez problemu na maszynie Win7, opisany problem występuje na komputerze z systemem Windows XP.

Używam Firefox 13 z selenem 2.24.1.

Odpowiedz

7

Wygląda na to, że kończy się efemeryczne porty, ponieważ w kółko trwają iteracje. Domyślna maksymalna liczba efemerycznych portów TCP to 5000 w systemie Windows XP. Spróbuj zwiększyć limit zgodnie z postanowieniem artykułu Microsoft KB o numerze here. Uruchom ponownie urządzenie. To rozwiązanie sprawdziło się u mnie.

+0

Dziękuję, spróbuję tego. Domyślam się, że porty są używane przez selen podczas komunikacji z przeglądarką? Czy nie wykorzystają ich ponownie? Mam tylko dwa wystąpienia FirefoxDriver ... – stracktracer

+0

To zadziałało. Wciąż zastanawiasz się, dlaczego tak wiele połączeń jest otwartych. – stracktracer

+0

Zetknąłem się z tą kwestią wiele razy, kiedy prowadziłem testy testowe selenem przy użyciu jenkins. Nigdy nie myślałem o tym jako o przyczynie problemu. Naprawdę fajna odpowiedź. –

Powiązane problemy