2012-06-29 9 views
7

Bir java webdriver tarafından çalıştırılan selenyum yürütme var; bu, bir metin kutusundaki farklı bir infomasyonu girmek ve FirefoxDriver kullanarak göndermek için bir döngü yapar.Bir bilgisayarda meydana gelen "UnreachableBrowserException/Adres zaten kullanımda" ile Selenium bir bilgisayarda meydana gelen

Bir bilgisayarda, 10 veya 11 yinelemeden sonra oldukça tekrarlanabilir, findElement(By.id("mi4")) çağrısı, UnreachableBrowserException'u yükseltir.

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) 

Herhangi bir bağlantı noktasında dinleme yapan üçüncü taraf programı bulunmamaktadır. Ancak, iki FirefoxDriver örneğini kullanıyorum, yani iki adet Firefox örneği/paralel olarak açılan Windows, Win7 makinesinde herhangi bir sorun olmadan çalışır, sorun Windows XP makinesinde gerçekleşir.

Firefox 13'ü selenyum 2.24.1 ile kullanıyorum.

cevap

7

Bitirdiğiniz bağlantı noktalarından çıktığınız için sesiniz sürekli tekrarlanıyor. Windows XP'de varsayılan geçici TCP bağlantı noktası sayısı maksimum 5000'dir. Microsoft KB makalesi here'daki çözünürlüğe göre sınırı artırmayı deneyin. Makineyi yeniden başlatın. Bu çözüm benim için çalıştı.

+0

Teşekkür ederim, Bunu deneyeceğim. Tarayıcılar ile iletişim kurarken limanlar selenyum tarafından kullanılıyor sanırım? Onları tekrar kullanmazlar mı? Sadece iki FirefoxDriver örneğim var ... – stracktracer

+0

Bu işe yaradı. Hala neden bu kadar çok bağlantının açıldığını merak ediyorum. – stracktracer

+0

jomen kullanarak selenyum test vakaları çalıştırırken bu sorunu birçok kez karşı karşıya kalmıştı. Bu sorunun nedeni olarak hiç düşünmemiştim. Gerçekten güzel cevap. –