我很好奇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