2012-06-29 15 views
7

पर होने वाले "पहुंचने योग्य ब्रोसर अपवाद/पता पहले से ही उपयोग" के साथ घिरा हुआ है। मेरे पास एक जावा वेबड्राइवर संचालित सेलेनियम निष्पादन है जो एक टेक्स्टबॉक्स में विभिन्न जानकारी दर्ज करने और फ़ायरफ़ॉक्स ड्रायवर का उपयोग करके इसे एक सूची में लूप करता है।सेलेनियम एक कंप्यूटर

10 वें या 11 वें पुनरावृत्ति के बाद, एक कंप्यूटर पर, काफी प्रतिलिपि बनाने योग्य, findElement(By.id("mi4")) की कॉल 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) 

किसी भी बंदरगाह पर कोई तीसरा पक्ष कार्यक्रम नहीं सुन रहा है। हालांकि, मैं फ़ायरफ़ॉक्स ड्रायवर के दो उदाहरणों का उपयोग करता हूं, जिसका अर्थ है कि दो फ़ायरफ़ॉक्स इंस्टेंस/विंडोज समानांतर में खोले गए हैं, जो Win7 मशीन पर किसी भी समस्या के बिना काम करता है, वर्णित समस्या Windows XP मशीन पर होती है।

मैं फ़ायरफ़ॉक्स 13 का उपयोग सेलेनियम 2.24.1 के साथ करता हूं।

उत्तर

7

ऐसा लगता है कि आप क्षणिक बंदरगाहों से बाहर निकल रहे हैं क्योंकि आप बार-बार चल रहे हैं। विंडोज एक्सपी में अल्पकालिक टीसीपी बंदरगाहों की डिफ़ॉल्ट अधिकतम संख्या 5000 है। माइक्रोसॉफ्ट केबी आलेख here में संकल्प के अनुसार सीमा बढ़ाने की कोशिश करें। मशीन को पुनरारंभ करें। इस समाधान ने मेरे लिए काम किया है।

+0

धन्यवाद, मैं इसे आजमाउंगा। मुझे लगता है कि ब्राउज़र के साथ संवाद करते समय बंदरगाहों सेलेनियम द्वारा उपयोग किया जाता है? क्या वे उनका पुन: उपयोग नहीं करेंगे? मेरे पास केवल फ़ायरफ़ॉक्स ड्रायवर के दो उदाहरण हैं ... – stracktracer

+0

यह काम करता है। अभी भी सोच रहा है कि इतने सारे कनेक्शन क्यों खोले गए हैं। – stracktracer

+0

जेनकींस का उपयोग करते हुए सेलेनियम परीक्षण के मामलों को चलाने पर मुझे कई बार इस मुद्दे का सामना करना पड़ा था। इस समस्या के कारण के रूप में कभी नहीं सोचा। वास्तव में अच्छा जवाब। –