selenium无法访问浏览器异常,java socket异常

时间:2012-08-19 00:30:35

标签: java selenium webdriver

最近,特别是在同一台PC上运行多个任务和进程时,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 个答案:

答案 0 :(得分:3)

我发现自己几个月来一直在努力解决这个问题,我真的尝试了几乎所有的东西,但仍然有随机的“UnreachableBrowserException”错误。

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

System.setProperty("java.net.preferIPv4Stack" , "true");

答案 1 :(得分:1)

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

我认为这是因为内存不足而导致我在新机器中将RAM升级到4GB。

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

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

答案 2 :(得分:0)

这是因为2个原因

  • 会话未被杀死,尝试终止会话并再次运行测试。

  • selenium web驱动程序无法找到FF浏览器启动它。

同时检查所有客户端驱动程序,并将selenium-server.jar放在库中。

您可以在启动FF时粘贴配置代码吗?

答案 3 :(得分:0)

我曾多次面对这个问题。可能有各种原因。

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

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

  3. 您的项目中可能存在不需要的jar。 Xalan.jar曾经给我带来过一次问题。删除它,看看。