2016-04-07 28 views
0

當前我試圖單擊加載頁面之前出現的對話框。我現在用的是browser.get(extentionHere)函數加載的方式在頁面類似於此:在量角器中加載頁面之前單擊對話框

it(..., function(){ browser.get('#/frontPage); element(dialogIdentifier).click(); 頁面加載量角器什麼也不做,直到超時,調查這種行爲使我發現,這是頁面的其他部分掛起的結果'等待'被點擊的對話框。從本質上說,URL是毫無意義的,因爲Protractor認爲頁面沒有加載,並將對話視爲更多的瀏覽器功能(不是)而不是網頁。因此,元素(...)。click()沒有執行,當然,程序無法繼續。 在試圖找到解決方案時,我發現功能browser.executeAsyncScript,我認爲這可能允許我按順序執行多個功能。我,雖然無知,企圖使我這個:

browser.executeAsyncScript('browser.get("#/frontPage")').then(function() { 
      element(dialogIdentifier)).click(); 
    }); 

,正如所暗示的我問這個問題,沒有工作(給我某種「瀏覽器是不是一個函數」的錯誤),如果我即使正確地使用這個功能來達到正確的目的,它似乎也適合該法案;讓我點擊對話框。 任何幫助將不勝感激(我不限制任何函數的答案,所以請讓我知道你有什麼想法)。

在此先感謝。

回答

1

我假設角度不加載,因爲在加載頁面之前會彈出對話框。下面的代碼告訴量角器不要等待角度同步,然後在單擊對話框後恢復同步。

browser.ignoreSynchronization = true; 
browser.get("http://www.google.ca").then(function() { 
    element(dialogIdentifier).click(); 
}); 
browser.ignoreSynchronization = false; 
+0

哈,有趣,因爲這是我發佈後立即嘗試,這是無濟於事,它錯了。我會再次嘗試給你錯誤信息。感謝你的回答。 – jsNoob

+0

好的,然後再次,沒關係我只是試過它我的代碼是第一次,另一個錯誤是由我犯的另一個錯誤。 – jsNoob

相關問題