【问题标题】:How to count gettext values until certain amount of those values are reached如何计算gettext值,直到达到一定数量的这些值
【发布时间】:2019-11-08 13:40:27
【问题描述】:

有多个元素具有相同的 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);

【问题讨论】:

  • cssContainingText 以这种方式使用也会计算 15,50,55 等。我假设您的范围限制为 10?

标签: javascript selenium protractor automated-tests


【解决方案1】:

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

【讨论】:

  • 谢谢,这看起来很有希望,但它应该验证所有可能的组合都有效,并且在其中一个被验证时不会完成。
  • 我会更新答案。只需更改while中的条件@
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-03
  • 2016-02-27
  • 1970-01-01
  • 2019-01-27
  • 1970-01-01
  • 2014-12-03
相关资源
最近更新 更多