如何使用Protractor

时间:2016-03-14 19:29:56

标签: angularjs protractor angular-ui-grid

我试图使用量角器来选择行,计算行数等。这似乎不起作用:

var GridTestUtils = require('./gridObjectTestUtils.spec.js');

var GridTestObj = new GridTestUtils('exampleGrid');
var Grid = GridTestObj.getGrid();

browser.wait(function(){

    return Grid.isPresent();

}, 1000).then(function(){

    GridTestObj.expectRowCount( 25 );

});

好像它们在重新加载之前试图找到这些行。测试保持失败,预期0等于25'。

如果我使用browser.sleep,我可以让它工作,但必须有一个更好的解决方案。

如何告诉量角器等待Angular ui-grid完全加载?

1 个答案:

答案 0 :(得分:1)

我会使用browser.wait()自定义预期条件执行此操作:

var rows = Grid.element( by.css('.ui-grid-render-container-body')).all( by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows track by $index') );

browser.wait(function () {
    return rows.count().then(function (countValue) { 
        return countValue > 0;
    });
}, 5000);

在这种情况下,protractor将连续执行传递到browser.wait()的函数,直到它的计算结果为true或超时发生(在5秒内)。

相关问题