运行webdriver时,运行3分钟后,出现以下异常,导致Webdriver崩溃。
我仅使用一个webdriver实例和一个FirefoxDriver配置文件。
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.BindException: Address already in use: connect System info: os.name: 'Windows XP', os.arch: 'x86', os.version: '5.1', java.version: '1.6.0_18' Driver info: driver.version: remote at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java: 341) at org.openqa.selenium.firefox.FirefoxDriver.execute(FirefoxDriver.java: 234) at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java: 173) at org.openqa.selenium.remote.RemoteWebDriver.findElementsByXPath(RemoteWebDriver.java: 231) at org.openqa.selenium.By$6.findElements(By.java:200) at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java: 158) Caused by: java.net.BindException: Address already in use: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java: 123) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java: 133) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java: 149) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java: 108) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java: 415) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java: 641) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java: 211) at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java: 125) at org.openqa.selenium.firefox.FirefoxDriver $LazyCommandExecutor.execute(FirefoxDriver.java:341) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java: 328) ... 11 more
您的出站端口已用完。这意味着您在两分钟之内执行了数千个出站连接。解决方案:使用连接池,或降低程序速度。