在使用赛普拉斯进行测试时,您能“访问”Chrome扩展吗?

时间:2018-06-15 14:29:44

标签: google-chrome-extension cypress

我正在尝试使用cypress.io

测试我的chrome扩展程序

我可以通过将其添加到plugins/index.js

来成功加载我的扩展程序
module.exports = (on, config) => {
  on('before:browser:launch', (browser = {}, args) => {
    if (browser.name === 'chrome') {
      args.push('--load-extension=../bananatabs/build')
      return args
    }
  })
}

我可以通过导航到cypress浏览器打开我的扩展程序的index.html chrome-extension://ewoifjflksdjfioewjfoiwe/index.html

但是当我尝试在测试中“访问”它时,就像这样:

context('visit bananatabs', () => {
    beforeEach(() => {
      cy.visit('chrome-extension://inbalflcnihklpnmnnbdcinlfgnmplfl/index.html')
    })

    it('does nothing', () => {
        assert(true);
    });

});

它不起作用。页面读取:

  

抱歉,我们无法加载:   铬 - 延伸://inbalflcnihklpnmnnbdcinlfgnmplfl/index.html

In the docs所有示例都使用http或https协议,而不是chrome-extension。

更新

我可以看到测试页面是http://localhost:54493/__/#/tests/integration/visit.spec.js,它包含我正在测试的页面的iframe,它使用chrome-extension://协议。我不确定那会不会有用。

可以这样做吗?

1 个答案:

答案 0 :(得分:4)

目前不是,但我opened an issue就是这样。

赛普拉斯对http / https提出了任意限制,可以轻松添加对chrome://resource://chrome-extension://等浏览器特定协议的支持

随意抛出:+1:就可以了!