Protractor Angular 9: browser.executeAsyncScript() - window.



在执行e2e测试时,我试图引用我的一个服务。我需要它来启用/禁用我的功能切换模拟机制,并可以对某些功能的打开/关闭状态进行测试。

我尝试过:

const data = await browser.executeScript(function() {
//@ts-ignore
return window.ng.getInjector(window.getAllAngularRootElements()[0]).get('MyService')
})

但问题是window.ng未定义,我收到错误消息:

Failed: javascript error: Cannot read property 'getInjector' of undefined
(Session info: chrome=80.0.3987.122)
(Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Linux 4.19.121-linuxkit x86_64)

我在使用browser.executeAsyncScript()时收到相同的错误

测试正在docker 中运行

问题在我自己的配置中

测试是针对与我预期不同的环境执行的。这是生产模式中的环境,这就是ng对象不可用的原因。

最新更新