问题描述
我正在使用 Squish for Qt 创建一个 Python 关键字库,以便使用 Robot Framework 运行自定义 Qt 应用程序 GUI 测试。目前,我在 Python 3.8.7(和 Squish 6.6.2)上运行 Robot Framework 3.2.2,但在将参数从 Robot 传递到 Python 时遇到了问题。
在名为 ClientKeywords.py 的 Python 文件中,我有以下内容
class ClientKeywords:
def start_client(launchMode):
if launchMode = "":
#Launch Client in default mode
elif launchMode = "logger":
#Launch Client with logging
在机器人文件中,我使用关键字就像
Library ClientKeywords
*** Test Cases ***
Smoke Test
[Documentation] This is a smoke test
Start Client logger
运行测试时出现错误
关键字“ClientKeywords.Start Client”应为 0 个参数,得到 1 个。
这个问题还很明显,因此在关键字文件上运行 libdoc 工具时,某些关键字参数根本没有显示。我真的无法找出一种模式,因为有些论点正在显示,有些则没有。例如:
drag_line_measurement(startY,dX,dY):
#Do stuff
click_on(intX,intY):
#Click stuff
关键字 | 参数 |
---|---|
拖线测量 | 开始,dX,dY |
点击 | intY |
我使用类结构的方式似乎存在一些问题,因为当类定义被删除时,库工作得很好,但在这种情况下这不是一个可行的长期解决方案 - 特别是当libdoc 只记录导入的 Squish python 库,而不是没有定义类的实际库文件。
解决方法
你应该改变这个
{"points": [{ "x": 0,"y": 1 },{ "x": 0.315397047887207,"y": 0.694608645422627 }]}
到
def start_client(launchMode):
因为它是一个类成员函数。