【问题标题】:Random UnreachableBrowserException when running Selenium tests运行 Selenium 测试时出现随机 UnreachableBrowserException
【发布时间】:2015-02-17 09:52:10
【问题描述】:

我发现,在运行我的 selenium 测试时,我在控制台中遇到了错误......但这些错误令人困惑地不会出现在每次运行中。请参阅下面的输出副本:

"Started InternetExplorerDriver server (64-bit)
2.44.0.0
Listening on port 39496
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Error       communicating with the remote browser. It may have died.
Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:58'
System info: host: 'MBD0150', ip: '192.168.55.49', os.name: 'Windows 8.1', os.arch: 'amd64',     os.version: '6.3', java.version: '1.8.0_25'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:593)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:79)
at genericControls.contractFunctions.matchRequestTableContractSelectFunction(contractFunctions.java:150)
at Reports.collections.earlySettlementWorkflowFunctions(collections.java:94)
at Reports.programMain.main(programMain.java:44)
Caused by: org.openqa.selenium.WebDriverException: java.net.SocketException: Permission denied:     connect
Build info: version: '2.43.1', revision: '5163bce', time: '2014-09-10 16:27:58'
System info: host: 'MBD0150', ip: '192.168.55.49', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_25'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:75)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:572)
... 5 more
Caused by: java.net.SocketException: Permission denied: connect
at java.net.DualStackPlainSocketImpl.waitForConnect(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.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72)
at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:123)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:318)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86)
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
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:233)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:66)
... 6 more"*

我做了一些研究,根据我的发现,我去了: HKEY_LOCAL_MACHINE > SYSTEM > 服务 > Tcpip > 参数

....并创建了一个名为“MaxUserPort”的 REG_DWORD。然后我将值设置为“65534”。我选择了这种方法,因为我的印象是每次使用 Internet Explorer 驱动程序运行测试时都会打开一个新端口。不幸的是,这样做并没有解决问题。我没有附上与上述错误相关的代码,因为我认为它不相关,因为该错误将出现在我的测试的不同点......在它以前工作过的某些地方。

如果有人能帮忙,那就太好了。

【问题讨论】:

    标签: java eclipse selenium webdriver


    【解决方案1】:

    我过去在升级 Service Pack 后遇到过同样的问题,它已解决。但也建议你看看下面。

    • 检查您的网络设置(防火墙、代理、防病毒软件)以 查找“权限被拒绝:连接”的原因
    • 查出是windows 7的问题,升级到SP1问题 解决了。​​
    • 似乎在运行 web-driver 时,它会打开许多​​ TCP 端口并且 耗尽可用端口,然后抛出此异常。查看 Selenium 版本如果早于 2.44 则尝试升级到 2.44 和 看看会发生什么。
    • 运行以下命令,杀死所有正在运行的IEDriverServer.exe 进程,taskkill /F /IM IEDriverServer.exe

    【讨论】:

    • 谢谢 Rupesh,我会尝试这些建议
    • 我也遇到了同样的问题,但是找不到问题的根源。我正在使用 chromeDriver 2.21。我的系统是 Windows 10
    最近更新 更多