【问题标题】:How to verify text on a page using Keywords?如何使用关键字验证页面上的文本?
【发布时间】:2019-09-11 15:28:24
【问题描述】:

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

我希望代码能够在单击链接并完成加载微调器后找到并验证页面上的文本“系统活动”。

运行脚本后出现以下错误: 2019-09-10 13:52:42.921 错误 k.k.c.m.CustomKeywordDelegatingMetaClass - ❌ 没有这样的属性:类的 myText: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 - 活动模块.run(C16320 - 活动模块: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)

【问题讨论】:

  • 您是否在脚本中使用了类似“waitForElementPresent”BuiltInKeywords 的内容?如果不是更好地使用它。
  • 关键字是指自定义关键字,而不是 BuiltInKeywords。

标签: katalon-studio


【解决方案1】:

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

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

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

您的方法将如下所示:

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

【讨论】:

  • 是的,myText 是一个变量,用于存储我想要验证的文本。可以使用与方法名称相同的变量名称还是应该不同?我可以使用 String text 代替 def text 吗?
  • 我试过这个并且它有效,否则我会得到和你一样的错误。当然,您可以使用字符串文本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 2015-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多