我正在尝试使用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://
协议。我不确定那会不会有用。
可以这样做吗?
答案 0 :(得分:4)
目前不是,但我opened an issue就是这样。
赛普拉斯对http
/ https
提出了任意限制,可以轻松添加对chrome://
,resource://
和chrome-extension://
等浏览器特定协议的支持
随意抛出:+1:就可以了!