我正在为我的angular7应用程序(Windows 10,Chrome)创建e2e测试。在我的应用程序中,首先出现一个非角度页面,当我输入用户名和密码时,出现角度页面。在导航到有角页面之前,我曾尝试将browser.ignoresynchronization = true
用于非角页面和browser.ignoresynchronization = false
。尽管如此,量角器在到达角度页面时就立即抛出。
我在browser.ignoresynchronization = true
下的protractor.conf文件中尝试过onPrepare()
,然后在登录后和出现角度页面之前将此标志再次设置为false。仍然出现量角器同步错误。
我还尝试使用browser.waitForAngularEnabled(false)
代替ignoresynchronization
,但仍然没有成功。
答案 0 :(得分:0)
欢迎您!
在获得细节之前:
量角器支持有角和无角页面。如已经完成的操作,指定何时希望量角器等待角度加载,以及何时不应该。
我们还有一个同时包含有角页面和无角页面的应用程序。现在已经有一段时间使用量角器进行E2E测试了。在我们的案例中,目的是最终在整个应用程序中迁移到Angular。
也就是说,我们使用了browser.ignoreSynchronization
(现在不推荐使用)和browser.waitForAngularEnabled()
来处理低角度页面。默认情况下,配置为非角度。但是,一旦页面迁移到有角度的页面,事情就变得很困难。我们必须做点什么。
对我们有用的解决方案:
具体来说:
根据我们的经验,请谨慎地在it
块的开头和结尾使用该标志。也就是说:在it块的开始处调用browser.waitForAngularEnabled(true/false)
,然后在同一it
块的末尾将其还原。随意使它的块尽可能小以处理此问题。总而言之,请确保it
块类似于
it('should do', function(){
browser.waitForAngularEnabled(false/true)
step1 here
step2 here
browser.waitForAngularEnabled(true/false)
})
该问题未包含错误详细信息,但是这种方法应该可以作为量角器(准确地说是JavaScript引擎)在整个it
块中运行。
也不清楚您是否使用量角器承诺管理器。如果上述方法不能解决问题,请进行更新。
祝一切顺利...