Protractor如何断言具有相同css类的多个元素全部显示

标签 protractor

在 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/

相关文章:

javascript - 在 Protractor 中上传 .jpg 文件时遇到问题

html - 如何在 Protractor e2e 测试中从列表(表)中获取行?

selenium - Protractor:彻底清除浏览数据

angularjs - Protractor 单击链接,但元素不可见?

javascript - Protractor 和 Karma 可以一起使用吗?

javascript - Protractor :TypeError:browser.driver.isElementPresent 不是函数

javascript - Protractor IE 11 错误 - 找不到元素

javascript - 如何使用 Protractor 获取 Javascript 提示值?

node.js - 如何使用 Protractor 验证 HTML 属性是否包含绝对或相对 URL?

javascript - 如何在 ProtractorJS 中扩展 ElementFinder 对象?