【问题标题】:Unspecified Protractor error at the end of a test run测试运行结束时出现未指定的量角器错误
【发布时间】:2019-08-25 20:41:28
【问题描述】:

我已升级到 Protractor 6.0.0 和 Jasmine 3.3.1,并且必须重做所有测试才能异步运行。

当我的量角器测试完成运行时,最后出现无法解释的错误。没有测试失败,但该过程似乎异常中止。我在最新的 webdriver 中运行 Chrome 73,我不得不专门降级到 Chrome 73 webdriver,因为 74 仍处于测试阶段。

这是测试运行的快照:

测试套件 1 测试

√ should check first thing
√ should check second thing
√ should display another thing

执行了 94 个规范中的 3 个未完成(89 个已跳过)。 C:\Users\Joon\AppData\Roaming\npm\node_modules\protractor\node_modules\jasmine-core\lib\jasmine-core\jasmine.js:3190 抛出参数[0]; ^

NoSuchSessionError:会话 ID 无效(驱动程序信息: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),平台=Windows NT 10.0.17134 x86_64) 在 Object.checkLegacyResponse (C:\Users\Joon\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\error.js:585:15) 在 parseHttpResponse (C:\Users\Joon\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:533:13) 在 Executor.execute (C:\Users\Joon\AppData\Roaming\npm\node_modules\protractor\node_modules\selenium-webdriver\lib\http.js:468:26) 在 在 process._tickCallback (internal/process/next_tick.js:188:7)

没有额外的错误消息,我发现的唯一一个具有相同错误消息的其他 SO 帖子之后也有额外的 promise denied 错误。

如何调试/排除导致此错误的原因?

【问题讨论】:

  • 会话 id 是指由 selenium (webdriver) 启动并在您的自动执行期间使用的浏览器实例。通常,当您运行测试的浏览器已关闭时,会收到该错误。您是否手动使用browser.restartsbrowser.close
  • @DublinDev 不,没有重新启动或关闭的调用,但是有一些 browser.wait 调用在升级过程中我没有在前面放置等待,然后导致同步问题在测试运行结束时使用浏览器状态管理。我在所有对 browser.wait 的调用中添加了等待调用,问题就消失了。

标签: selenium protractor


【解决方案1】:

我想通了 - 有一些对 browser.wait 的调用在它们之前没有等待。

其中一个导致同步错误,导致在测试运行结束时出现未指定的状态管理错误。

对于在您从控制流升级到异步流后遇到 WebDriver 状态错误的任何其他人 - 请确保将 await 调用放在所有 Protractor 浏览器交互调用之前。我错过的是 browser.wait ,但它可能是对 Protractor 的任何其他调用导致此问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多