使用Protractor,Cucumber,Chai作为承诺来解决多个承诺

时间:2015-09-18 15:57:39

标签: javascript angularjs protractor chai cucumberjs

我需要断言一系列div .row中的.container个孩子的数量大于0。

this.Then(/^I should see at least one element in each container$/, function (done) {  
    page.element.all(by.css('.container'))                                                    
        .each(function (element, index) {                                     
            element.all(by.css('.row'))                               
                .then(function(elements) {                                        
                    expect(elements.length).to.be.greaterThan(0);                   
                    done();                                                       
                });                                                               
    });
});                                                                   

标记看起来像:

<div class="container">
    <div class="row"></div>
    <div class="row"></div>
    <div class="row"></div>
</div>
<div class="container">
    <div class="row"></div>
</div>

并且每个容器中必须至少有一个.row

问题是,只要第一次检查为真,它就会一直通过。

我已尝试使用protractor.promise对象尝试不同的解决方案,同时尝试在each次迭代中保存承诺,然后尝试在最后执行期望,但没有任何实际工作。

我开始认为我应该从完全不同的角度来看待这种方法。

任何参赛者?

1 个答案:

答案 0 :(得分:0)

您应该获取每个div下的行元素,然后断言每个div中是否有多于零的行。试试这个 -

ng-repeat="info in empDetails | filter: departmentFilter | orderBy:'Name' | filter:searchTxt"

希望这有帮助