7

我找到了梦幻般的单元/ e2e测试工具karma。 我写了一个简单的扩展名为angular的扩展。我想为它编写自动化测试,但不仅是单元测试,也是端到端测试。 我写了这样的事情(将打开我的角度扩展选项页):如何用业力测试e2e google chrome扩展?

it('Go to options page', function() { 
    browser().navigateTo('chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options'); 
}); 

我删除“--user-data-dir来”和“ - 禁用默认的应用程序”的卡玛 - 铬 - (因为我希望我的扩展在“业力测试”期间保持在镀铬状态)

但我有下一个错误消息“沙盒错误:应用程序文档无法访问”。

browser navigate to 'chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options' 
    http://localhost:9876/base/tests/e2e/scenario.js?1372429335000:9:5: 

    Sandbox Error: Application document not accessible. 

    Chrome 27.0 (Windows): Executed 2 of 2 (2 FAILED) (0.254 secs/0.139 secs) 

铬选项--no的沙箱过时很久以前。

我敢肯定,我没有错,选项页面打开好,但从铬“多功能框”。

chrome-extension://aopgehikihpnclbfeohobanjecpiefho/html/application.html#/options 

沙箱错误意味着没有办法终端到终端的测试经由因缘谷歌Chrome浏览器扩展? 我可以将铬设置为特殊的“非安全”模式,仅用于测试吗?

感谢,

+0

https://github.com/salsita/chrome-angular-skeleton链接到角度扩展,似乎没有业力单元测试和谷歌浏览器扩展端到端测试,所以我必须编写自己的单位测试它 – IL55

+0

application.html是否在您的扩展的清单的web-accessible-resources部分列出? –

+0

是的,我已经有了HTML/application.html在 “web_accessible_resources”: “JS/*”, “HTML/*”, “CSS/*”, “图像/ *” ], – IL55

回答

0

如果你所尝试设置代理?像

proxies = { 
    '/': 'chrome-extension://aopgehikihpnclbfeohobanjecpiefho/' 
}; 

karma-e2e.conf.js文件,然后

browser().navigateTo('/html/application.html#/options'); 
测试

+0

我ve得到了:WARN [proxy]:未能代理/html/application.html(错误:getaddrinfo ENOENT) 浏览器导航到'/html/application.html#/options' http:// localhost:9876/base/tests /e2e/scenario.js?1374847487000:8:5:沙盒错误:应用程序文档无法访问。 – IL55

+0

可能Karma代理不支持chrome扩展。在解决问题之前可能没有解决方案。你可以在Github上提出问题。 –

+0

我将我的问题发布到业力运行团体https://groups.google.com/forum/#!topic/karma-users/y-Lc29KyKIM – IL55

2

我不认为业力场景亚军能够做到这一点。你可以尝试Protractor,它使用WebDriver和业力情景跑步者将被替换它。

+1

我试过量角器,看到WebDriver打开扩展选项页面确定(我在浏览器中观察到),但是'Error:Angular can not be found on the page chrome-extension://ojkcpfmpkjjdmhmbgjdobncijnbgenbo/html/application.html#/options '。我用量角器和webdriver noob可以尝试访问元素一些不同的方式?我试过'ptor.findElement(protractor.By.bind('options_page'))' – IL55

+0

我不能说很多没有看到代码,但你是自举角度手动?你也可以尝试其他选择器来测试By.css。 –

+0

是的,由于require.js – IL55