如何使用关键字验证页面上的文本?
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
}
我正在尝试验证微调器完成加载后出现的页面上的一些文本。是否可以在 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
}