Katalon自动化工具中自定义关键字函数能否相互调用?调用报错求助
当然可以在Katalon的自定义关键字里调用另一个自定义关键字啦!你遇到的No such property: CustomKeywords错误,本质是因为你的关键字类里没有正确引用Katalon的CustomKeywords工具类,或者调用语法有误。下面是具体的解决方法:
错误原因分析
你提供的错误日志显示:
05-30-2018 02:59:02 PM - [ERROR] - No such property: CustomKeywords for class: mandatoryfield_Validation.Mandatoryfieldva...
这说明你的mandatoryfield_Validation.Mandatoryfieldvalidation类中,没有导入CustomKeywords类,或者调用其他关键字时的语法不符合要求。
解决步骤
1. 导入CustomKeywords类
在你的自定义关键字类的最顶部,添加以下导入语句:
import com.kms.katalon.core.keyword.CustomKeywords
这是让你的类能够识别CustomKeywords这个工具类的前提。
2. 使用正确的调用语法
调用其他自定义关键字时,必须遵循CustomKeywords.'包名.类名.方法名'(参数列表)的格式。举个例子:
假设你要调用的关键字是com.example.ValidationUtils.checkRequiredField(),那么在你的textfieldvalidation方法里应该这么写:
CustomKeywords.'com.example.ValidationUtils.checkRequiredField'(testObject, errorMessage)
3. 检查名称拼写与大小写
Katalon对自定义关键字的包名、类名、方法名的拼写和大小写是敏感的,一定要确保你调用的名称和目标关键字的实际名称完全一致,避免拼写错误。
替代调用方式(同包下更简便)
如果两个自定义关键字在同一个包下,你也可以直接创建目标类的实例来调用方法,不需要依赖CustomKeywords,比如:
// 假设同包下有AnotherKeyword类 def anotherKeyword = new AnotherKeyword() anotherKeyword.itsMethod(testObject)
完整示例代码
这里给你一个符合规范的代码示例,参考调整你的关键字:
import com.kms.katalon.core.keyword.CustomKeywords import com.kms.katalon.core.testobject.TestObject import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI class Mandatoryfieldvalidation { def textfieldvalidation(TestObject testObj) { // 调用另一个自定义关键字 CustomKeywords.'com.utils.InputUtils.clearInputField'(testObj) // 执行必填项验证逻辑 WebUI.verifyElementPresent(testObj, 10) WebUI.verifyElementAttributeValue(testObj, "required", "true", 10) // ...其他验证代码 } }
内容的提问来源于stack exchange,提问作者Vel Guru

