UI测试:是否可以避免使用delay()方法?

问题描述 投票:0回答:1

我从事 UI 测试已经有一段时间了,场景如下:

  1. 用户在输入字段中输入值
  2. 在此字段中输入的值会动态地重新显示在角度表的单元格中

我的测试想确保在输入字段中输入的值确实是表中反映的值。问题是,如果不使用delay()方法,我就无法检索表中生成的值,这是应该避免的。

以下是我如何尝试恢复表中的值:

When waitFor(inputLocator.pathInputLocator).input("18.00")
And mouse().move(100, 200).go().click(); // click outside input, value updated in table
* def shippingCost = text(tableLocator.pathTableLocator)
* print shippingCost // return 0 instead of the value

感谢您的帮助

****** 编辑:****** 为了检查我是否获取了表中输入字段的值,我尝试了这段代码,但我可能误解了文档:

When waitFor(inputLocator.pathInputLocator).input("18.00")
And mouse().move(100, 200).go().click(); // click outside input, value updated in table


And def searchFunction =
  """
  function() {
    var results = scriptAll('tableLocator.pathTableLocator', "!_.textContent == '0'");
    return results.size() > 0 ? results : null;
  }
  """

And def getMyValue = waitUntil(searchFunction)
* print getMyValue

此代码在我将函数 searchFunction 作为参数传递给 waitUntil 的行上触发错误

感谢您的帮助

testing karate
1个回答
0
投票

您是否尝试过使用函数使用

waitUntil
语法。

这也可能有效,但你明白了:

* waitUntil(tableLocator.pathTableLocator, "!_.textContent == '0'")
© www.soinside.com 2019 - 2024. All rights reserved.