空手道 - 屏幕截图方法抛出“无法获得回复”例外

发布于 2025-01-10 19:30:43 字数 1944 浏览 0 评论 0原文

我正在使用空手道 1.1.0 并运行结合了驱动程序机器人实例的测试。测试在本地通过,但在通过 Jenkins 执行时间歇性失败,并出现以下错误:

js failed:
>>>>
01: delay(20000).screenshot()
<<<<
org.graalvm.polyglot.PolyglotException: failed to get reply for: [id: 2052, sessionId: D9DA8BB2B46A340A64D04C96EDFC9231, method: Page.captureScreenshot]
- com.intuit.karate.driver.DevToolsDriver.sendAndWait(DevToolsDriver.java:161)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:213)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:209)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:823)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:801)
- com.intuit.karate.driver.Driver.screenshot(Driver.java:119)
- <js>.:program(Unnamed:1)

在这个特定的示例中,screenshot() 调用是“不明确的”,但我也尝试过像 driver.screenshot(),这没有什么区别:

js failed:
>>>>
01: driver.screenshot()
<<<<
org.graalvm.polyglot.PolyglotException: failed to get reply for: [id: 1832, sessionId: F7B7D4210527DE4B28FD2B85ACF66638, method: Page.captureScreenshot]
- com.intuit.karate.driver.DevToolsDriver.sendAndWait(DevToolsDriver.java:161)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:213)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:209)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:823)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:801)
- com.intuit.karate.driver.Driver.screenshot(Driver.java:119)
- <js>.:program(Unnamed:1)

Chrome 不是在无头模式下运行,并且在某些运行中屏幕截图被成功捕获。我尝试过的其他一些事情是:

  • 更改窗口大小(addOptions: ['--window-size=1920,1080']);
  • 使用screenshotFull()
  • 增加超时(超时:90000);
  • 增加 Java 堆空间。

任何帮助将不胜感激。

I'm using Karate 1.1.0 and running tests that combine both driver and robot instances. The tests are passing locally, but fail intermittently when executed through Jenkins with the following error:

js failed:
>>>>
01: delay(20000).screenshot()
<<<<
org.graalvm.polyglot.PolyglotException: failed to get reply for: [id: 2052, sessionId: D9DA8BB2B46A340A64D04C96EDFC9231, method: Page.captureScreenshot]
- com.intuit.karate.driver.DevToolsDriver.sendAndWait(DevToolsDriver.java:161)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:213)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:209)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:823)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:801)
- com.intuit.karate.driver.Driver.screenshot(Driver.java:119)
- <js>.:program(Unnamed:1)

In this particular example screenshot() call is 'ambiguous', but I've also tried it like so driver.screenshot(), which didn't make a difference:

js failed:
>>>>
01: driver.screenshot()
<<<<
org.graalvm.polyglot.PolyglotException: failed to get reply for: [id: 1832, sessionId: F7B7D4210527DE4B28FD2B85ACF66638, method: Page.captureScreenshot]
- com.intuit.karate.driver.DevToolsDriver.sendAndWait(DevToolsDriver.java:161)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:213)
- com.intuit.karate.driver.DevToolsMessage.send(DevToolsMessage.java:209)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:823)
- com.intuit.karate.driver.DevToolsDriver.screenshot(DevToolsDriver.java:801)
- com.intuit.karate.driver.Driver.screenshot(Driver.java:119)
- <js>.:program(Unnamed:1)

Chrome is not running in headless mode and in some runs screenshots get captured successfully. Some other things I tried are:

  • changed the window size (addOptions: ['--window-size=1920,1080']);
  • used screenshotFull();
  • increased timeout (timeout: 90000);
  • increased Java heap space.

Any help will be greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文