【问题标题】:Protractor how to assert multiple elements with same css class are all displayed量角器如何断言具有相同css类的多个元素全部显示
【发布时间】:2016-10-13 05:29:26
【问题描述】:

在量角器中,我想断言显示所有具有特定 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();
  })
});

这可行,但似乎过于复杂。

【问题讨论】:

标签: protractor


【解决方案1】:

您可以先使用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();

【讨论】:

    【解决方案2】:

    最后,我做到了:

    let billEls = element.all(by.className('bills'));
    
    billEls.then(elements => {
      elements.forEach(el => {
        expect(el.isDisplayed()).toBeTruthy();
      })
    });
    

    但更喜欢@FlorentB 的 .reduce 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      相关资源
      最近更新 更多