在 Protractor 中,我想断言显示具有特定 css 类的所有元素。但这样的语法不起作用。
expect(element.all(by.className('bill')).each(x => x.isDisplayed().toBeTruthy());
实现这一目标的 Protractor 方法是什么?是这个吗?
let els = element.all(by.className('bill'));
els.then(x => {
x.forEach(y => {
expect(y.isDisplayed()).toBeTruthy();
})
});
这可行,但似乎过于复杂。
最佳答案
您可以首先使用 map
将项目转换为 bool 数组,然后断言该数组不包含 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();
关于Protractor如何断言具有相同css类的多个元素全部显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40012946/