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

时间:2019-09-10 17:04:15

标签: katalon-studio

我正在尝试验证微调器完成加载后显示的页面上的某些文本。是否可以在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')

在链接被单击并且微调器完成加载之后,我希望代码能够在页面上找到并验证文本“ System Activity”。

运行脚本后出现以下错误: 2019-09-10 13:52:42.921错误k.k.c.m.CustomKeywordDelegatingMetaClass-❌无此类属性:myText for class:com.wms.modules.general.ModuleKeywords 2019-09-10 13:52:42.925错误c.k.katalon.core.main.TestCaseExecutor-❌测试案例/回归/ WMS / C16320-活动模块失败。 原因: groovy.lang.MissingPropertyException:否这样的属性: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)

1 个答案:

答案 0 :(得分:0)

myText的含义有些混乱。尚不清楚它是方法名称还是属性名称。

因此,建议您在方法内部更改文本变量的名称(我将其简称为text)。还要确保也添加def关键字。

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

您的方法将如下所示:

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