Javascript 如何使用量角器计算不可见项
我可以使用Javascript 如何使用量角器计算不可见项,javascript,angularjs,testing,protractor,Javascript,Angularjs,Testing,Protractor,我可以使用filter对可见的项目进行计数,如下所示: it('should have correct number of visible columns', function () { expect(tableHeaders.filter(function (header) { return header.isDisplayed() }).count()).toBe(6); }); 但是我怎样才能更好地计算无形的呢? 这个函数不能作为头函数使用。isDisplayed()
filter
对可见的项目进行计数,如下所示:
it('should have correct number of visible columns', function () {
expect(tableHeaders.filter(function (header) {
return header.isDisplayed()
}).count()).toBe(6);
});
但是我怎样才能更好地计算无形的呢?
这个函数不能作为头函数使用。isDisplayed()
返回一个承诺,而不仅仅是一个布尔值:
it('should have correct number of visible columns', function () {
expect(tableHeaders.filter(function (header) {
return !header.isDisplayed()
}).count()).toBe(6);
});
那么,我应该如何用最量角器的方式计算不可见的项目呢?我已经想出了如何使用这个方法:
expect(tableHeaders.reduce(function (acc, header) {
return header.isDisplayed()
.then(function (isDisplayed) {
return acc += !isDisplayed ? 1 : 0;
})
}, 0)).toBe(7);
如果项目未显示,我将累加器变量增加1
,然后返回它并与正确的值进行比较。reduce()
可以在此处使用,但这是“最常用的量角器方法”:
var invisibleTableHeaders = tableHeaders.filter(function (header) {
return header.isDisplayed().then(function (isDisplayed) {
return !isDisplayed;
})
});
expect(invisibleTableHeaders.count()).toBe(7);