Robot Framework 的自定义 Python 关键字 - 预期为 0 个参数,得到 1

问题描述

我正在使用 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): 

因为它是一个类成员函数。