Robot Framework跨文件调用带变量参数自定义关键字方法
问题解答
这个需求完全可以实现,你当前示例代码的核心问题是自定义关键字没有声明入参,按照Robot Framework的自定义关键字语法调整后即可正常使用,具体改法如下:
1. 修正公共关键字文件写法
公共资源文件(建议命名为类似CommonSikuli.robot的资源文件)中,自定义关键字需要通过[Arguments]配置声明接收的传入参数,还可以给可选参数设置默认值提升灵活性,参考代码:
*** Keywords *** Click Wait Button [Arguments] ${img_name} ${wait_timeout}=3 Wait Until Screen Contain ${img_name}.png ${wait_timeout} Click ${img_name}.png
说明:上面代码里
${wait_timeout}=3是给等待超时设置了默认值3秒,调用时如果不传第二个参数就默认用3秒,需要调整等待时长时直接传入对应数值即可。
2. 修正业务测试文件配置与写法
业务测试文件首先要在*** Settings ***段导入公共关键字资源文件和SikuliLibrary依赖,之后就可以直接传入图片名调用封装好的关键字,参考代码:
*** Settings *** Library SikuliLibrary Resource ./CommonSikuli.robot # 替换为你的公共关键字文件实际路径 *** Test Cases *** testOne Click Wait Button imageOne # 需要自定义等待时长时写法:Click Wait Button imageOne 5
注意事项
- 如果你存放截图的目录不是SikuliLibrary默认的图片搜索路径,可以在导入SikuliLibrary时统一配置图片根目录参数,或者调用关键字时直接传入图片的完整路径,避免找不到图片报错。
- 自定义关键字命名尽量不要和SikuliLibrary内置关键字、Robot Framework内置关键字重名,避免出现关键字匹配冲突。
- 后续如果要扩展其他封装逻辑(比如等待元素出现后输入文本、等待元素消失等),都可以通过
[Arguments]声明对应入参的方式实现,逻辑和上述封装一致。
内容的提问来源于stack exchange,提问作者evojd
相关产品推荐
相关产品推荐

