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?
謝謝!
向我們展示有問題的代碼。 – FCin
這不是讓protactor等待。你必須等待promise使用'then'來解析並且不使用$ httpBackend模擬服務器端? – Walfrat
$$('div.someclass')。get(8);'返回一個你必須解決的承諾。所以你做'$$('div.someclass')。get(8).then(function(data){});' – FCin