最近,我一直在使用Protractor进行Angular应用程序的e2e测试。
最近,e2e测试已停止工作,因为Protractor正在网站上搜索Angular,但找不到它。我已将其发布为issue,因为我的演示应用也遇到了问题。事实证明,演示应用程序已损坏,但这并不能解决我的问题。
执行ng e2e
时的具体结果:
[15:00:22] E/protractor - Could not find Angular on page http://localhost:4200/ : angular never provided resumeBootstrap
HomePage tests
✗ should have a title
- Failed: Angular could not be found on the page http://localhost:4200/.If this is not an Angular application, you may need to turn off waiting for Angular.
Please see https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular-on-page-load
在不久之后发生了另一个错误:
- Failed: Error while waiting for Protractor to sync with the page:
"Cannot read property '$$testability' of undefined"
使用ng new blabla
的新演示应用程序,我没有收到此错误。所以它必须与Protractor等待的请求有关,但永远不会得到解决。
所以我的问题是: - 有人也遇到过这个问题吗? - 如果是这样,是否有步骤检查量角器卡在哪里,所以我可以解决这个问题? - 或者这是Protractor的问题吗?
注意:使用browser.ignoreSynchronization = true
时,Protractor不会与Angular同步并运行规范,但我想使用Protractor功能,因此这不是一个长期解决方案。
注意:应用程序使用的是Angular,而不是AngularJS
答案 0 :(得分:1)
好的,我发现了两种可能的方法。
第一个解决方案是添加:
... ,
"typeRoots": [
"../node_modules/@types"
]
到您的tsconfig.e2e.json
文件,它解决了问题。这不包括在@angular/cli
生成的文件中。
另一个解决方案是将ng-app
添加到index.html
文件的body标签中,虽然我不喜欢这个解决方案,因为它看起来更像是一个hack(将AngularJS与Angular混合)比其他解决方案。