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

Robot Framework调用Python文件作为关键字时提示找不到关键字问题求助

修复方案

核心问题列表

  • 测试用例语法不符合Robot Framework规范:*** Test Cases *** 区块下必须先定义测试用例名称,再编写执行步骤,你当前直接写步骤属于语法错误,会导致RF无法正常识别关键字调用。
  • 分隔符使用错误:你混用了管道符|和空格做参数分隔,要么统一用2个以上空格分隔参数,要么严格使用管道分隔格式(每行首尾都加|)。
  • 传参顺序完全匹配不上函数定义:Python函数IsDataInCsv的第一个入参是要查找的目标字符串,第二个入参是csv文件所在的目录路径,但你调用时第一个参数传了csv文件名,完全不符合入参要求,且你要查找的目标字符串根本没有传入。
  • 路径拼接错误:Python代码中直接拼接路径时没有处理目录结尾的分隔符,会生成类似C:\Users\me\Downloadsreadings.csv的错误路径,无法找到目标文件。

修正后代码

Robot Framework 脚本

*** Settings ***
Library    CheckDataInCSV

*** Test Cases ***
验证指定字符串是否存在于CSV文件
    # 第一个参数填你要查找的目标字符串,第二个参数填CSV所在目录
    ${encryption_in_csv}=    IsDataInCsv    你要查找的目标字符串    C:\\Users\\me\\Downloads
    Log    ${encryption_in_csv}

CheckDataInCSV.py 代码

from robot.api.deco import keyword
import os

@keyword("IsDataInCsv")
def IsDataInCsv(target_text, downloads_path):
    # 用os.path.join自动处理路径分隔符,避免拼接错误
    csv_path = os.path.join(downloads_path, "readings.csv")
    # 用with上下文管理器自动处理文件关闭
    with open(csv_path, 'r', encoding='utf-8') as f:
        file_contents = f.readlines()
    for item in file_contents:
        if target_text in item:
            return True
    return False

验证操作步骤

  • 确认RF脚本和CheckDataInCSV.py放在同一目录下
  • 替换RF脚本中你要查找的目标字符串为你实际需要检索的内容
  • 直接执行RF脚本即可正常调用关键字

内容的提问来源于stack exchange,提问作者Joshua Clew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:54:05