Cypress.io 可以测试 Chrome 扩展吗?

Huy*_* Ho 9 end-to-end cypress

我正在尝试使用 cypress.io 测试我的 chrome 扩展

我安装了https://github.com/ejoubaud/cypress-browser-extension-plugin

context('visit extension', () => {
    beforeEach(() => {
      cy.visit('chrome-extension://fmnignchafknmcleldmndpkfkdohnngn/dashboard.html')
    })

    it('does nothing', () => {
        assert(true);
    });
});
Run Code Online (Sandbox Code Playgroud)

它不起作用。页面内容如下:

Sorry, we could not load: chrome-extension://fmnignchafknmcleldmndpkfkdohnngn/dashboard.html
Run Code Online (Sandbox Code Playgroud)

Ale*_*ott 8

您不需要任何额外的插件来加载浏览器扩展,假设您正在运行Cypress>=v4,下面的内容应该足以加载它。

// cypress/plugins/index.js
module. Exports = (on, config) => {
  on('before:browser:launch', (browser, launchOptions) => {
    // supply the absolute path to an unpacked extension's folder
    // NOTE: extensions cannot be loaded in headless Chrome
    launchOptions.extensions.push('Users/jane/path/to/extension')
     return launchOptions
  })
}
Run Code Online (Sandbox Code Playgroud)

在您的测试文件中,您可以访问任何“正常”网页,它应该适合您。例如:

// test.spec.js
describe('Navigation', () => {
  it('cy.visit() - visit a remote url', () => {
    cy.visit('https://en.wikipedia.org/wiki/Diabetes')
  })
})
Run Code Online (Sandbox Code Playgroud)

此外,Cypress 无法访问类似chrome-extension://(或任何不是httphttps) 的东西。这是他们的设计。

  • 是的,根据我的回答和 Cypress 文档,您无法加载 chrome 扩展页面。您需要通过启动选项加载解压的扩展。 (2认同)