当量角器无法找到元素时,获取 EADDRINUSE 连接 EADDRINUSE

Posted

技术标签:

【中文标题】当量角器无法找到元素时,获取 EADDRINUSE 连接 EADDRINUSE【英文标题】:Getting EADDRINUSE connect EADDRINUSE when protractor unable to find element 【发布时间】:2019-07-01 14:40:58 【问题描述】:

当我运行 e2e 测试套件时,它在测试中间退出,给出错误 EADDRINUSE connect EADDRINUSE。我在生产实例上运行量角器。 当量角器无法找到元素时,就会发生这种情况。 看起来有一些由 webdriver-manager 在 selenium 服务器上创建的正在运行的进程既没有完成也没有正确终止。

用户正在尝试在 批处理脚本 中传递ng e2e --serve=false --base-href=https://.... 以触发量角器,它将开始测试,但有时是由于应用程序的频繁开发版本或者它发生在量角器无法找到元素时,也可能是某种原因。所以,当它发生时,脚本的执行会在中间停止(在成功运行 n 个案例后)。 那么什么是可能的解决方案,用户可以通过代码或任何措施来处理这些中断。

【问题讨论】:

似乎与以下内容重复:***.com/a/24875865/6331748 @Kacper:我没有找到解决方案。我已经指定我在生产实例上运行量角器而不是本地。当量角器未找到某些元素并且某些进程在 selenium 服务器上未正确终止时,就会发生这种情况。我需要在我的代码中使用某种恢复方法来处理此类错误的解决方案。 什么浏览器以及如何运行它,请更新您的问题 我同意@Kacper 的观点,即您正在启动当前正在使用的服务器。因此,如果您在端口 4444(使用 webdriver-manager)上启动 selenium 独立服务器,并且您已经有一个 selenium 独立服务器实例,那么这将无法为您提供 EADDRINUSE。我会检查您是否已经有一个 java 进程在端口 4444 上运行 selenium 独立 jar 文件。 发帖因为这里没有答案github.com/angular/protractor/issues/4447 【参考方案1】:

当我们禁用 browser.waitForAngularEnabled(false) 并运行并行执行时,一段时间后会发生此错误(EADDRINUSE connect EADDRINUSE)。

解决方案:我们必须确保我们为所有脚本中的所有位置禁用了 waitforAngularEnabled。 它对我有用。希望这对你也有帮助

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。 如果您有新问题,请点击 按钮提出问题。如果有助于提供上下文,请包含指向此问题的链接。 - From Review

以上是关于当量角器无法找到元素时,获取 EADDRINUSE 连接 EADDRINUSE的主要内容,如果未能解决你的问题,请参考以下文章

量角器无法通过绑定$ ctrl找到元素

如何获取量角器中根 div 元素内存在的子 div 元素的数量

页面加载后无法找到嵌套元素

量角器 - 获取元素的子元素?

如何使用量角器定位器找到子元素?

如何在量角器中上/下滚动网格?