首页 > 解决方案 > 如何计算gettext值,直到达到一定数量的这些值

问题描述

有多个元素具有相同的 div。通过单击按钮,这些元素会获得数值。如果这些元素中的文本达到某种模式,我就完成了,我应该结束测试。

例如,有 5 个 div 为“someelement”的元素,这些元素中都有数字。如果这些元素中总共有三个数字 5,它应该注销“you win”之类的。如果这些元素中有四个数字 2,它应该注销“you win2”。它应该遍历所有这些选项以进行验证。如何继续循环?

我找到了一个简单的解决方案来计算元素中的这些值,但是如何继续测试直到达到这些预期条件之一?

var els = element.all(by.cssContainingText('.thediv', '5'));
expect(els.count()).toBe(3);

var els2 = element.all(by.cssContainingText('.thediv', '4'));
expect(els.count()).toBe(2);

标签: javascriptseleniumprotractorautomated-tests

解决方案


它将单击按钮,然后找到元素并计算它们。循环将一直运行,直到第一个元素计数不等于 3AND第二个元素计数不等于 2。

let els;
let els2;
let count = 0;
let count2 = 0;

do {
  button.click();
  els = element.all(by.cssContainingText('.thediv', '5'));
  els2 = element.all(by.cssContainingText('.thediv', '4'));
  count = els.count();
  count 2 = els2.count();
} while (count !== 3 && count2 !== 2)

推荐阅读