5

最近,特别是在同一台电脑上运行多个任务和进程时,selenium webdriver 2 给出了许多无法访问的浏览器异常,这些异常总是带有 java 套接字异常:

 Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException:                         Could not start a new session. Possible causes are invalid address of the remote server or     browser start-up failure.
   Build info: version: '2.25.0', revision: '17482', time: '2012-07-18 21:09:54'
  System info: os.name: 'Windows Vista', os.arch: 'x86', os.version: '6.0',       java.version: '1.7.0_05'
   Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:493)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:182)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)

    Caused by: java.net.SocketException: Permission denied: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(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:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:150)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:575)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:319)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:297)
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:136)
at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:357)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:472)
... 7 more

为什么这种情况经常发生?selenim 2.25 与 firefox 14 不兼容吗?

4

4 回答 4

3

我发现自己在这个问题上苦苦挣扎了几个月,我真的尝试了几乎所有东西,但仍然出现随机的“UnreachableBrowserException”错误。

这是我唯一可行的解​​决方案。

System.setProperty("java.net.preferIPv4Stack" , "true");
于 2016-05-08T17:57:02.727 回答
1

Selenium Web Driver 也有同样的问题。特别是当我在不重新启动 Web 驱动程序的情况下运行较长的测试脚本时。然后我搬到了一台性能很好的新机器上,然后我可以避免它近 90%。

我认为这是因为内存不足而发生的,因此我将新机器上的 RAM 升级到了 4GB。

这解决了我的问题,现在一切正常。

注意:每次试运行后请检查您是否正确关闭了驱动程序,也可能由于内存泄漏导致驱动程序被杀死。

于 2013-03-06T17:26:47.917 回答
0

This is because of 2 reasons

  • session not getting killed, try to kill the session and run the test again.

  • selenium web driver cannot find the FF browser to start it.

Also Check all your client drivers and selenium-server.jar are placed on the libararies.

Could you paste the configuration code on starting FF?

于 2013-07-23T10:27:03.427 回答
0

我曾多次遇到过这个问题。相同的原因可能有多种。

  1. 您的浏览器实例未正确关闭。因此,当您调用 driver.close() 方法时,请从您的任务管理器中检查它是否正在杀死驱动程序。我观察到它主要用于 chrome 和 IE。对于 Firefox,它会自动关闭实例。

  2. FF 和 Webdriver 版本应该相互兼容。更改您的 Webdriver jar 并尝试一下。

  3. 您的项目中可能存在不需要的 jar。Xalan.jar 曾经给我带来了问题。取下来看看。

于 2016-03-28T10:39:06.140 回答