无法加载扩展以与 cypress 一起使用 keydown 事件

问题描述 投票:0回答:1

我的扩展命令在

manifest.json
中使用 Ctrl + Shift + X 组合键切换警报。

 "commands": {
        "toggle_extension": {
            "suggested_key": {
              "default": "Ctrl+Shift+X",
              "mac": "Command+Shift+X"
            },
            "description": "Toggle Your Extension"
          }
    }

我的开发依赖项:

  "devDependencies": {
    "@types/chrome": "^0.0.262",
    "@types/jest": "^29.5.12",
    "copy-webpack-plugin": "^12.0.2",
    "cypress": "^13.6.6",
    "ts-loader": "^9.5.1",
    "typescript": "5.3.3",
    "webpack": "^5.90.3",
    "webpack-cli": "^5.1.4"
  }

我的测试用例

describe("Test alert", () => {
  it("passes", () => {
    cy.visit("");

    cy.window().trigger('keydown', {
        key: "x", // "X" key code
        keyCode: 88,
        ctrlKey: true,
        shiftKey: true,
      });

    cy.get("#alert").should("exist");
  })
});

我的

cypress.config.ts
。扩展代码位于名为
release
.

的目录中
import { defineConfig } from "cypress";
import * as path from "path";

export default defineConfig({
  e2e: {
    baseUrl: "https://example.com",
    specPattern: "tests/**/*.cy.ts",
    supportFile: false,
    fixturesFolder: false,
    defaultCommandTimeout: 5000,
    viewportWidth: 1280,
    viewportHeight: 720,
    chromeWebSecurity: false,
    testIsolation: true,
    screenshotOnRunFailure: false,
    setupNodeEvents(on, config) {
      on('before:browser:launch', (browser, launchOptions) => {
          launchOptions.extensions.push(path.resolve(__dirname, "release"));
          return launchOptions;
      });
    }
  },
});

使用

npx cypress run --browser chrome --headed
和扩展运行 cypress 似乎已加载,但测试用例未按预期工作,并且警报元素从未显示。我是否错过了什么或尝试了一些不可能的事情?

javascript typescript google-chrome-extension cypress
1个回答
1
投票

如果运行项目“build”脚本,

./release/alertbox.js
中的输出代码就是这样(显然无法显示任何类型的警报)

(()=>{"use strict";new WeakSet})();

如果运行包脚本,然后查看 zip 文件内部,警报框代码是相同的。

也许代码之前正在编译并且发生了一些变化,或者

package.json
中缺少依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.