javascript - 如何用 Protractor 计算不可见的项目

标签 javascript angularjs testing protractor

我可以像这样使用 filter 来计算visible 项目:

it('should have correct number of visible columns', function () {
  expect(tableHeaders.filter(function (header) {
      return header.isDisplayed()
  }).count()).toBe(6);
});

但是我怎样才能更好地计算不可见的呢? 这一个不起作用,因为 header.isDisplayed() 返回一个 Promise,而不仅仅是一个 bool 值:

it('should have correct number of visible columns', function () {
  expect(tableHeaders.filter(function (header) {
      return !header.isDisplayed()
  }).count()).toBe(6);
});

那么,我应该如何以最 Protractor 的方式计算不可见的项目?

最佳答案

我已经知道如何使用 .reduce()为此目的:

    expect(tableHeaders.reduce(function (acc, header) {
      return header.isDisplayed()
          .then(function (isDisplayed) {
              return acc += !isDisplayed ? 1 : 0;
          })
    }, 0)).toBe(7);

如果项目未显示,我将累加器变量增加 1,然后返回它并与正确的值进行比较。

关于javascript - 如何用 Protractor 计算不可见的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34434736/

相关文章:

javascript - 访问外部对象的 'this' (javascript)

AngularJS:在 Electron 中检索 mysql 数据并将其发布到 AngularJS 范围

javascript - Angular + Python post 字符串和 json

python - 如何使用 assert_raises 捕获 SystemExit 异常

angular - 使用 Karma 进行测试 - 无法绑定(bind)到 'routerLink',因为它不是的已知属性

javascript - 数据表从API获取JSON而不设置 "aaData"

javascript - 加载更多按钮将加载更多帖子

javascript - Heroku 上的 WebSocket ERR_CONNECTION_REFUSED

php - 如何读取保存在客户端浏览器cookie内存中的laravel_session cookies?

oop - 单元测试不同的类层次结构