我使用量角器来测试角应用程序,我有一个奇怪的问题。偶尔或从最近以来,量角器一直在停滞/减速。
我缩小了这个问题的范围,可以看到一个简单的someElement.getText().then(...)
需要很长时间才能解决;所以.then(...)
部分永远不会执行;然而,让allScriptTimeOut: 500 000
等待,直到承诺最终解决,大约需要6分钟才能解决(非常不方便!)。
再次,等待allScriptTimeOut: 500 000
最终会有效,但需要的时间太长。
这种极端减速的另一个解决方案是告诉量角器嘿Protractor,不要等待Angular完成所有承诺和异步后台任务,然后继续,不要等待角度,这将适用于{{1 }}
然而,将此布尔值设置为true是有问题的,因为它基本上将您的整个角度应用程序视为非角度应用程序,并且永远不会等待角度因此导致与量角器的所有类型的问题。另一个复杂因素是我们的应用程序不是完全有角度的,有些页面是非角度的;无论如何;这是我的问题:
有没有办法挂钩到控制流队列,并且基本上轮询或查询队列是通过询问hey控制流队列告诉我任何入队的行动花费的时间超过11秒?如果是,请设置browser.ignoreSynchronization = true;
;像sudo一样的代码看起来像这样:
browser.ignoreSynchronization = true
这可能在语法上没有意义,但我对这个概念比对正确编写的javascript更感兴趣;
再次感谢,希望能够清楚地了解我的问题
更新:
我再次检查,基本上,Protractor能够点击大多数按钮,但它会到达屏幕底部的另一个按钮,但我先滚动按钮进入视图,然后尝试点击它它只需要6分钟,然后它最终点击该按钮。
为什么在最终成功点击该按钮之前需要很长时间?
答案 0 :(得分:0)
关于你在测试中更改ignoreSynchronization
的问题,目前这是不可能的(通过量角器3.3.0),因为内置的waitForAngular
函数没有实现该变量控制流的上下文(browser.ts:399
必须包含在控制流中,以便它能够识别变量何时被更改)。希望这种改变可以修补到未来版本中,但它会引入现有行为的突破性变化。