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