如何计算gettext值,直到达到一定数量的值

时间:2019-06-26 14:55:33

标签: javascript selenium protractor automated-tests

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

例如,有5个div为“ someelement”的元素,这些元素中都有数字。如果这些元素中总共有3个数字(共5个),则应该注销“您赢了”之类的内容。如果这些元素中有4个数字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);

1 个答案:

答案 0 :(得分:0)

它将单击按钮,然后找到元素并计数。循环将一直运行,直到第一个元素计数不等于3 AND,第二个元素计数将不等于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)