使用 Chrome DevTools 协议让 Cypress 成为 运行 Headless Electron

Getting Cypress to run Headless Electron with Chrome DevTools Protocol

赛普拉斯版本^3.8.3

使用 Chrome 我能够设置并连接到远程调试端口。

在cypress/plugins/index.js

  if (browser.name === "chrome") {            
    args.push("--remote-debugging-port=9222");
    return args;
  }

启动柏树时 运行 然后我可以使用环境变量 CYPRESS_REMOTE_DEBUGGING_PORT=9222.

作为前缀

然而,当我尝试用 Electron 做类似的事情时,我从来没有连接上。

  if (browser.name === "electron") {
    args.webPreferences = {
      remoteDebuggingPort: 9222
    };
    //----OR------
    args.remoteDebuggingPort = 9222;
    return args;
  }

我觉得我错过了一些非常简单的东西!任何关于如何让 Cypress Electron 运行 连接远程调试端口的想法都很棒!

Electron 不会在端口上侦听 CDP 消息,您尝试使用的方法目前仅限于在独立浏览器中使用 CDP。


但是,如果您只需要从测试中发送 CDP 命令,而不是订阅事件,则有一种 未记录且不受支持的 方法可以通过 Cypress.automation('remote:debugger:protocol', { command, params }).

示例:https://github.com/cypress-io/cypress/blob/d92d3c0bab21cbd4ff96c24848779461f183a6d6/packages/server/test/support/fixtures/projects/e2e/cypress/support/index.js#L1-L13