如何在机器人框架中调用class方法?

How to call class method in robot framework?

我收到错误消息“未找到名称为 'addition' 的关键字。”

py文件

class A:
  def addition(self,a,b):
      print(a+b)
obj=A()
obj.addition(4,5)

机器人代码

    *** Setting ***
Library  xyz.py

*** Test Cases ***
Addition Program
    addition    a    b

确保遵循文档 RF .

摘自文档:

"库名 导入库时使用的测试库的名称与模块的名称或实现它的 class 相同。例如,如果您有一个 Python 模块 MyLibrary(即文件 MyLibrary.py),它将创建一个名为 MyLibrary 的库。 Python classes 总是在一个模块中。如果实现库的 class 名称与模块名称相同,Robot Framework 允许在导入库时删除 class 名称。例如,MyLib.py 文件中的 class MyLib 可以用作名称为 MyLib 的库。这也适用于子模块,因此,例如,如果 parent.MyLib 模块具有 class MyLib,则仅使用 parent.MyLib 即可导入它。如果模块名称和 class 名称不同,则必须使用模块名称和 class 名称来使用库,例如​​ mymodule.MyLibrary 或 parent.submodule.MyLib."

python 文件“MyLibrary.py”

class MyLibrary:

    def __init__(self,a,b):
        self.a=a
        self.b=b

    def addition(self):
        return self.a+self.b

机器人文件

*** Settings ***
Library           MyLibrary.py        
  
*** Test Cases ***   
Example                
    ${result}=    MyLibrary.addition
    Log    ${result}