【发布时间】: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 我已经用代码和异常更新了问题。