2014-01-14 20 views
0

我正在做天真的e2e測試。該網站的前兩頁是角少,所以我用driver.findelement他們得到的,與忽略同步設置爲true:使用量角器選擇器和一個可能的同步問題

it('should go to login page on pressing button',function(){ 
    driver.get('http://localhost:54080/'); 
    driver.findElement(by.id('loginButton')).click(); 
    expect(driver.getCurrentUrl()).toContain('Account/Login'); 
    }); 

等。但是,到達角度部分(不再忽略同步)時,我希望能夠像使用模型一樣使用量角器選擇器。

ptor.findElement(protractor.By.model('item.Title')) 

我覺得這給了我一個同步錯誤:

Error while waiting for Protractor to sync with the page: {... 

我試過很多東西,我做的很少的測試時間的角度來看,它主要是寫在一個模糊的功能樣式。我沒有任何投票,所以它應該相當簡單,我幾乎相信這是一個時間或同步問題,脫離了大多數文檔的一般風格。

+0

要更新,當我將ignoresynchronisation設置爲true時,測試將正常工作 - 不確定這可能會產生什麼影響。 – bunnielovekins

回答

0

在繼續進行下一個測試之前,量角器正在等待所有AngularJS $ timeout和$ http調用完成。默認情況下,它在11秒後超時(任意,我知道)。如果您使用$超時進行輪詢,或者在頁面首次加載時有大量$ http調用,那麼很容易達到此限制。

我解決問題的方法是將我的量角器配置中的allScriptsTimeout屬性增加到30000(30秒)。

+0

並且不要忘記在這個延遲期間按F12鍵查看網絡層發生了什麼。它可以幫助你更多地瞭解正在發生的事情。 –