我很好奇waitForAngularEnabled()是如何工作的? 虽然看起来并不复杂,但我无法在任何地方得到满意的答案。所以希望有人帮助我清除。waitForAngularEnabled如何工作?
我的目标是检查标准并暂停/锁定运行测试,直到满足标准。例如,这里是例子。
A.暂停运行测试,并等待页面被载入
...
let theElement = ...;
browser.waitForAngularEnabled(false);
browser.wait(protractor.ExpectedConditions.presenceOf(theElement));
B.使用browser.wait()时,另一种方法类似用途与一个
browser.wait(() => {
browser.waitForAngularEnabled(false);
return browser.isElementPresent(by.id('the-element-id'));
}, timeout); // timeout may not be given
所以问题是:
- 一旦waitForAngularEnabled(false)被调用会发生什么? (一旦条件满足或超时发生在我的情况)
- 我应该还原waitForAngularEnabled(true)以继续正常测试吗?
- 如果我该做,该放哪里?
希望能得到一些背景原理明确的答案。
谢谢!
您是否看到量角器的API文档? http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.waitForAngular AND http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.waitForAngularEnabled –
是的,我做了,但我并不满意。 你能否回答问题1? 在此先感谢。 – first87
要回答问题#1,我们需要知道为什么你要把它关掉。您是否在Angular结束时获得与$ http或$ timeout轮询相关的超时?另外,看起来这个函数只是'browser.ignoreSynchronization'的替代品,并且这在'waitForAngular()'函数中用来决定是否使用它。这就是两个 – Gunderson