在量角器中,我想声明显示所有具有特定css类的元素。但是像这样的语法不起作用。
expect(element.all(by.className('bill')).each(x => x.isDisplayed().toBeTruthy());
实现这一目标的量角器方法是什么?这是吗?
let els = element.all(by.className('bill'));
els.then(x => {
x.forEach(y => {
expect(y.isDisplayed()).toBeTruthy();
})
});
这很有效,但似乎过于复杂。
答案 0 :(得分:2)
您可以先将项目转换为包含map
的布尔数组,然后断言该数组不包含false
:
var elems = element.all(by.className('bill'));
expect(elems.map(e => e.isDisplayed())).not.toContain(false);
您还可以使用reduce
来汇总isDisplayed
返回的状态:
var elems = element.all(by.className('bill'));
expect(elems.reduce((acc, e) => acc && e.isDisplayed())).toBeTruthy();
答案 1 :(得分:0)
最后,我这样做了:
let billEls = element.all(by.className('bills'));
billEls.then(elements => {
elements.forEach(el => {
expect(el.isDisplayed()).toBeTruthy();
})
});
但更喜欢@ FlorentB的.reduce方法。