問題描述:規範的方法來調試量角器對角同步問題
而在量角器終端到終端的測試中打開我們的應用程序的一個頁面最近,我們得到這個臭名昭著的錯誤:
失敗:超時等待異步Angular任務在50秒後完成。這可能是因爲當前頁面不是Angular應用程序。
這發生在我們的測試中的一個browser.get("/some/page/");
電話:
describe("Test", function() {
beforeEach(function() {
browser.get("/some/page/");
});
it("should test something", function() {
// ...
});
)};
而且,什麼是奇怪我們的情況下,該錯誤沒有任何其他網頁在我們斜網拋出應用 - 量角器與Angular同步,沒有任何問題。 ng-app
位置明智的事情是在所有頁面的相同 - ng-app
是根html
標籤定義:
<html class="ng-scope" lang="en-us" ng-app="myApp" ng-strict-di="">
的行爲是一致的 - 我們每次導航到該頁面browser.get()
時間,我們得到這個錯誤。任何時候我們導航到我們的應用程序中的任何其他頁面,同步工作。
請注意,當然,我們可以關閉此頁面的同步並將其視爲非角度,但這隻能視爲解決方法。
的問題:
還有什麼可以引起量角器對角同步失敗?我們應該檢查什麼?
而且,一般來說,推薦使用哪種方法來調試量角器中的同步問題?
使用目前最新的Protractor 5.5.1,Angular 1.5.6。
我想這是同步問題。 '的https:// github.com /角度/量角器/斑點/主/文檔/ timeouts.md#如何到禁用等待換angular'。他們告訴的解決方案與關閉同步或者可能使用'driver.browser.get()'而不是'browser.get()'相同。 –
@KishanPatel謝謝,但正如我在問題中提到的,我明白我們可以關閉同步並將頁面視爲非角度 - 這是一種解決方法,它會工作,但我們正在嘗試找出爲什麼同步不適用於此特定頁面和一般準則來調試此類問題。 – alecxe
你的錯誤清楚地表明它可以同步,因爲Angular,並且有兩個原因會發生'$ http'和'$ timeout' - 量角器將等待這兩個服務完成。如果它是由'$ timeout'引起的,那麼你應該簡單地用'$ interval'替換它,而對於'$ http',除非你想寫一個XHR服務並用它代替'$ http',否則沒有解決方法。 – maurycy