我可以使用filter
这样计算可见项目:
it('should have correct number of visible columns', function () {
expect(tableHeaders.filter(function (header) {
return header.isDisplayed()
}).count()).toBe(6);
});
但我如何更好地计算隐形?
这个不起作用,因为header.isDisplayed()
返回一个Promise,而不仅仅是一个布尔值:
it('should have correct number of visible columns', function () {
expect(tableHeaders.filter(function (header) {
return !header.isDisplayed()
}).count()).toBe(6);
});
那么,我应该如何计算最大量的隐形物品?
答案 0 :(得分:1)
我已经找到了如何将.reduce()
用于此目的:
expect(tableHeaders.reduce(function (acc, header) {
return header.isDisplayed()
.then(function (isDisplayed) {
return acc += !isDisplayed ? 1 : 0;
})
}, 0)).toBe(7);
如果项目未显示,我将累加器变量增加1
,然后将其返回并与正确的值进行比较。
答案 1 :(得分:0)
reduce()
可以在这里使用,但.filter()
将是"最主要的量角器方式":
var invisibleTableHeaders = tableHeaders.filter(function (header) {
return header.isDisplayed().then(function (isDisplayed) {
return !isDisplayed;
})
});
expect(invisibleTableHeaders.count()).toBe(7);