我有一个包含 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/