如何使用关键字验证页面上的文本?

How to verify text on a page using Keywords?

我正在尝试验证微调器完成加载后出现的页面上的一些文本。是否可以在 Katalon 中执行此类测试?

我尝试创建一个关键字然后使用它,但不知道下一步该做什么。

public class ModuleKeywords {


    @Keyword
    def myText(String){
    myText = WebUI.getText(findTestObject('Object Repository/WMS/Page_/li_System Activity'))
    return myText
    }

}
def sysText = CustomKeywords.'com.wms.modules.general.ModuleKeywords.myText'()

    if (sysText == 'System Activity') {

    println("The text displayed is = "  + sysText)

}
    else
    println('Activity page did not load')

我希望代码在单击 link 并完成微调器加载后查找并验证页面上的文本 "System Activity"。

我在 运行 脚本后收到以下错误: 2019-09-10 13:52:42.921 错误 k.k.c.m.CustomKeywordDelegatingMetaClass - ❌ 没有这样的 属性:class 的 myText:com.wms.modules.general.ModuleKeywords 2019-09-10 13:52:42.925 错误 c.k.katalon.core.main.TestCaseExecutor - ❌测试 Cases/regression/WMS/C16320 - Activity 模块失败。 原因: groovy.lang.MissingPropertyException:没有这样的 属性:class 的 myText:com.wms.modules.general.ModuleKeywords 在 com.wms.modules.general.ModuleKeywords.myText(ModuleKeywords.groovy:26) 在 com.wms.modules.general.ModuleKeywords.invokeMethod(ModuleKeywords.groovy) 在 com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:50) 在 C16320 - Activity Module.run(C16320 - Activity Module:23) 在 com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) 在 com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) 在 com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:337) 在 com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:328) 在 com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:307) 在 com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:299) 在 com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:233) 在 com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:114) 在 com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(未知来源) 在 TempTestCase1568141525512.run(TempTestCase1568141525512.groovy:21)

myText 的含义有些混淆。不清楚是方法名还是属性名。

因此,我建议您在方法中更改文本变量的名称(我将其命名为 text)。请务必同时添加 def 关键字。

最后,在编写带有此签名的方法时 def myText(String) 你是在说该方法接受一个字符串参数,但你没有在你的示例中提供该参数,因此不需要它。

您的方法将如下所示:

@Keyword
def myText(){
    def text = WebUI.getText(findTestObject('Object Repository/WMS/Page_/li_System Activity'))
    return text
}