You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Robot文件的Keyword部分调用Python文件中的类方法?

解决Robot Framework调用Python类方法的问题

问题原因

你的代码存在两个核心问题:

  1. Python语法错误:类定义需用小写class而非Class;实例方法定义必须带括号(且需包含self参数),比如def func(self):。
  2. Robot导入逻辑错误:直接导入a.py模块时,Robot不会自动实例化其中的abc类,因此无法直接调用类内的func方法。

解决方案

以下三种方式均可实现需求,可根据场景选择:

方式一:直接导入类作为Robot库

修正Python语法后,在Robot中通过模块名.类名的方式导入类,Robot会自动完成实例化:

修正后的a.py

class abc:
    def func(self):
        # 写入你的方法逻辑
        return "执行func方法"

修改后的x.robot

Library    a.abc

*** Keywords ***
Calling abc
    ${执行结果}=    func
    Log    ${执行结果}

方式二:在Python模块中暴露类方法到模块级别

如果不想改变Robot的导入语句,可在a.py中实例化类,并将方法绑定为模块级函数:

修改后的a.py

class abc:
    def func(self):
        return "执行func方法"

# 实例化类并将方法暴露为模块级变量
abc_instance = abc()
func = abc_instance.func

x.robot保持原导入方式即可

Library    a.py

*** Keywords ***
Calling abc
    func

方式三:手动实例化类并调用方法

使用Robot内置关键字手动创建类实例,再调用方法,适合需要控制实例化过程的场景:

x.robot

Library    a

*** Keywords ***
Calling abc
    # 创建abc类的实例
    ${abc实例}=    Create Instance    a.abc
    # 调用实例的func方法
    ${执行结果}=    Call Method    ${abc实例}    func
    Log    ${执行结果}

内容的提问来源于stack exchange,提问作者Satyaki Chatterjee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:30:42