【问题标题】:Selenium RemoteWebDriver 2.39 with firefox 26Selenium RemoteWebDriver 2.39 与 Firefox 26
【发布时间】:2014-01-07 06:28:37
【问题描述】:

我在 Windows 7 上使用 selenium-standalone-server-2.39 作为 RemoteWebDriver[服务器在不同的机器上运行] 和 firefox 26。测试执行工作正常但是当代码尝试 关闭或退出驱动程序/浏览器 在套件拆解期间,它会给出 UnreachableBrowserException。 虽然如果我在本地使用 webdriver [服务器在同一台机器上运行],它可以完美运行。

我已经尝试过使用 ff 26 的不同版本的 webdriver 2.36、2.37、2.38,但每次都会出现相同的异常。

如果有人帮我解决这个问题,那将非常有帮助。

selenium webdriver 和 firefox 的哪种组合可以完美运行?

编辑:我正在尝试运行这段简单的代码-

 public static void main(String s[]) throws Exception {
       URL url = new URL( "http", ip, 4444, "/wd/hub" );
       FirefoxProfile pf = new FirefoxProfile(new File("D:\\ffprofile"));
       DesiredCapabilities capabilities =DesiredCapabilities.firefox();
       capabilities.setCapability(FirefoxDriver.PROFILE, pf);
       System.out.println("1");
       capabilities.setJavascriptEnabled(true);
       System.out.println("2");
       WebDriver driver = new RemoteWebDriver(url,capabilities);
      System.out.println("4");
      driver.get("http://www.google.com");
      driver.close();
    }

例外:

    Jan 07, 2014 1:10:32 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
    INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
    Jan 07, 2014 1:10:32 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
    INFO: Retrying request
Jan 07, 2014 1:10:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
Jan 07, 2014 1:10:51 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Jan 07, 2014 1:11:10 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
Jan 07, 2014 1:11:10 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: '2.38.0', revision: 'bd32d4e', time: '2013-12-05 16:15:38'
System info: host: 'symc-w7-12281', ip: '10.88.155.166', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_25'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569)
    at org.openqa.selenium.remote.RemoteWebDriver.close(RemoteWebDriver.java:418)
    at SeleniumTest.main(SeleniumTest.java:30)
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160)
    at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:84)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:273)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:283)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:251)
    at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:223)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:682)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
    at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:319)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:298)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:527)
    ... 3 more

【问题讨论】:

  • 浏览器和驱动程序的所有组合都可以正常工作。唯一的问题是如果您使用的是二进制 Chrome 或 IE 驱动程序,并且您的浏览器版本太新,二进制驱动程序无法处理,即使那样,错误也不常见。你一定在做一些不寻常的事情。您应该发布更多详细信息。
  • @djangofan 我已经用代码和异常更新了问题。

标签: selenium-webdriver


【解决方案1】:

尝试在您的代码中注释掉这一行:

capabilities.setCapability(FirefoxDriver.PROFILE, pf);

不要指定要在网格上使用的配置文件,只需在网格配置中明确配置配置文件,或者根本不指定配置文件,以便 Firefox 只使用默认配置文件。

如果您查看 Selenium 2.41.0 (https://selenium.googlecode.com/git/java/CHANGELOG) 的发行说明,您会注意到不再支持 Firefox 26。它在 2.39 中受支持,但您可以使用发行说明来确保您使用的是正确的版本。事实上,Selenium 2.44.0 只支持 Firefox 24、31、32 和 33。

【讨论】:

  • 它帮助了我!解决了我的问题!但为什么??这是硒虫吗?它曾经工作得很好,不知道为什么设置配置文件不再工作了
【解决方案2】:

我会尝试降级您的 Firefox 版本

【讨论】:

    猜你喜欢
    • 2013-12-25
    • 1970-01-01
    • 2013-12-28
    • 2014-02-02
    • 1970-01-01
    • 2017-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    相关资源
    最近更新 更多