javascript - 为什么 Protractor 找到的元素数量不正确?

标签 javascript jquery angularjs protractor

我有一个包含 5 个 ng-repeated 元素的页面,我正在尝试验证显示的数量是否正确(self.assignmentQuestions 代表服务器的数组副本,该副本应该使用 ng-repeat 显示在网页上):

browser.pause()
$$("[ng-repeat='task in newAssignment.questions track by task._id'] > omni-task").then(function(assignmentQuestions) {
  expect(assignmentQuestions.length).toEqual(self.assignmentQuestions.length);

当浏览器暂停时,如果我打开控制台并执行 $("[ng-repeat='task in newAssignment.questions track by task._id'] >omni-task") jQuery 找到 5 个元素。当 Protractor 检索 ElementArrayFinder 的当前集合时,它能够找到 6 个(应该只有 5 个)。 Protractor 不应该在页面状态相同的情况下查找与 jQuery 相同的 CSS 并找到相同数量的元素吗?

最佳答案

首先:在 Protractor 中,您有 by.repeater 选择器。 然后您可以使用 count() 并返回一个 promise ,然后检查长度。这应该有效:

var elements = element.all(by.repeater('task in newAssignment.questions'));
expect(elements.count()).to.become(self.assignmentQuestions.length);

关于javascript - 为什么 Protractor 找到的元素数量不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42014125/

相关文章:

javascript - 如何通过 FourSquare API 查看某处签到的人数?

javascript - 当通过 jQuery 为元素动态添加类时,未应用 CSS 样式

javascript - 在 for 循环中等待 promise

javascript - Angularjs 从列表中单击并显示

javascript - 为什么 .then() 在没有 JavaScript promise 的情况下工作?

javascript - 有没有办法将 Assistant 分配给基于 D3.js 的 OrgChart 中的节点?

jquery - 是否可以使用 jeditable 弹出窗口而不是内联

angularjs - Angular 组件绑定(bind)未定义

javascript - 如何在 Angular 指令中监听元素的属性变化?

javascript - 如何将自定义 css/js 添加到 WordPress 中的一个页面?