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

使用Python在Robot Framework中无法创建自定义关键字

解决Robot Framework自定义库获取SeleniumLibrary实例失败的问题

问题原因

你的代码报错核心是SeleniumLibrary未在Robot测试套件中完成导入/初始化,导致get_library_instance无法找到对应实例;也可能存在Robot Framework版本与语法兼容问题。

修复方案

方案1:确保Robot文件先导入SeleniumLibrary

在Robot测试文件的*** Settings ***区块中,必须先导入SeleniumLibrary,再导入你的自定义库:

*** Settings ***
Library    SeleniumLibrary
Library    Shop  # 导入自定义库

方案2:修改自定义库初始化逻辑

如果希望自定义库自动处理依赖,可先导入SeleniumLibrary再获取实例:

from robot.api.deco import library, keyword
from robot.libraries.BuiltIn import BuiltIn

@library
class Shop:
    def __init__(self):
        # 先导入SeleniumLibrary(未导入时自动执行)
        BuiltIn().import_library("SeleniumLibrary")
        # 获取已初始化的实例
        self.selLib = BuiltIn().get_library_instance("SeleniumLibrary")

    # 示例自定义关键字
    @keyword
    def open_shop_url(self, url):
        self.selLib.open_browser(url, "chrome")

方案3:使用依赖注入(推荐)

通过@library装饰器的依赖注入功能,直接让Robot自动传入SeleniumLibrary实例,无需手动获取:

from robot.api.deco import library, keyword
from robot.libraries.SeleniumLibrary import SeleniumLibrary

@library(scope="GLOBAL")
class Shop:
    # 构造函数声明依赖,Robot自动注入实例
    def __init__(self, selLib: SeleniumLibrary):
        self.selLib = selLib

    @keyword
    def add_to_cart(self, item_locator):
        self.selLib.click_element(item_locator)
        self.selLib.click_element("xpath=//button[text()='加入购物车']")

验证示例

编写Robot测试用例调用自定义关键字:

*** Test Cases ***
测试添加商品到购物车
    Open Shop Url    https://demo-shop.com
    Add To Cart    xpath=//div[@class='product-item'][1]

内容的提问来源于stack exchange,提问作者sunil talaviya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 11:43:15