2017-02-15 55 views
0

這是我在StackOverflow上的第一篇文章,所以請溫和。碼頭集裝箱中的量角器 - 等待整個頁面加載

我正在用Docker容器運行一些Protractor測試。 這個測試很好地在容器外工作,但是在它裏面,量角器不會等待一些Angular Ajax調用來完全填充一些div。

it('Should check first years are equal', function() { 
    var firstElementFirstYear = $$('div.cumulated div.street-table-value.ng-scope div.ng-binding.ng-scope').get(8).getInnerHtml().then(function(text) {return text.trim();}); 
    var secondElementFirstYear = $$('div.cumulated div.street-table-value.ng-binding.ng-scope').get(8).getInnerHtml().then(function(text) {return text.trim();}); 
    expect(firstElementFirstYear).toEqual(secondElementFirstYear); 
},10000); 

然後我得到一個索引值出界異常的。

我想:

  • 在beforeEach使用waitForAngular。
  • 等待一個預期的條件(計數> 9)得到滿足,但它獲得的元素
  • 試圖找到我的元素與量角器調試工具之前得到已逾時
  • browser.sleep(4000),啓動Chrome瀏覽器和我正確地得到我的10個元素,當我手動找到他們

但我不設法得到所需的所有元素,元素的數量保持在5,從來沒有去10

什麼否則我可以嘗試等待Angular完成ajax調用和popula我的div?

謝謝!

+0

向我們展示有問題的代碼。 – FCin

+0

這不是讓protactor等待。你必須等待promise使用'then'來解析並且不使用$ httpBackend模擬服務器端? – Walfrat

+0

$$('div.someclass')。get(8);'返回一個你必須解決的承諾。所以你做'$$('div.someclass')。get(8).then(function(data){});' – FCin

回答

0

你是對的@FCin,元素實際上是隱藏的。我啓動無頭量角器容器時調整屏幕分辨率:

-e SCREEN_RES=1920x1080x24 

,就是這樣!謝謝!