Angularjs ng repeat 量角器列表筛选器测试失败,计数为0而不是预期的数字

Angularjs ng repeat 量角器列表筛选器测试失败,计数为0而不是预期的数字,angularjs-ng-repeat,protractor,angularjs-filter,Angularjs Ng Repeat,Protractor,Angularjs Filter,量角器测试在4次测试中失败,计数为0,而不是列表中预期的筛选值数。但是,实际程序中的过滤器工作正常 测试运行。测试期间,在搜索文本框中输入值。考试有什么问题?如何解决 以下是测试: “严格使用”; //角E2E测试指南: // https://docs.angularjs.org/guide/e2e-testing 描述('LLO 2016',函数(){ 描述('edit-leerling',函数(){ beforeach(函数(){ get('index.html#/leerlingen')

量角器测试在4次测试中失败,计数为0,而不是列表中预期的筛选值数。但是,实际程序中的过滤器工作正常

测试运行。测试期间,在搜索文本框中输入值。考试有什么问题?如何解决

以下是测试:

“严格使用”;
//角E2E测试指南:
// https://docs.angularjs.org/guide/e2e-testing
描述('LLO 2016',函数(){
描述('edit-leerling',函数(){
beforeach(函数(){
get('index.html#/leerlingen');
});
它('当用户键入搜索框时,应过滤leerlingen列表',函数(){
var editLeerling=element.all(由.repeater('(id,leerling)在leerlingen'));
var query=element(by.model('mentorQuery');
expect(editLeerling.count()).toBe(248);
query.sendKeys('5H');
expect(editLeerling.count()).toBe(163);
query.clear();
query.sendKeys('6V');
expect(editLeerling.count()).toBe(85);
query.clear();
query.sendKeys('WIND');
expect(editLeerling.count()).toBe(22);
});
});

});好的,我们已经在评论中指出,这是一个时间问题-当您做出预期时,搜索结果尚未加载

browser.sleep()。您需要一个
browser.wait()
和一个要等待的条件。至少我们可以检查是否存在至少一个搜索结果:

var EC = protractor.ExpectedConditions;
var elm = element(by.repeater('(id, leerling) in leerlingen'));

browser.wait(EC.presenceOf(elm), 5000);

var editLeerling = element.all(by.repeater('(id, leerling) in leerlingen'));
var query = element(by.model('mentorQuery'));

expect(editLeerling.count()).toBe(248);

// ...

您是否看到第一个
expect()
(在任何筛选之前)也失败了?@alecxe是的,也0好的,快速检查如果您这样定位结果会发生什么:
var editleering=$$('tr[ng repeat*=“(id,leerling)in leerlingen”]-有什么区别吗?@alecxe没有区别。我是否应该添加延迟以便页面有时间加载248行?明白了。可以让我们在第一个期望值之前添加
browser.sleep(5000)
(仅用于调试-无论如何,这不是一个可靠的解决方案)。有帮助吗?