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

Robot Framework:如何从SeleniumLibrary访问driver类属性

如何在Robot Framework中访问SeleniumLibrary的driver属性?

我要实现自定义函数,需要访问SeleniumLibrary里用@property装饰器定义的driver属性(代码如下)。已经用Open Browser命令创建了别名为Test的webdriver,但用多种Robot脚本命令访问driver都失败,报错:"Evaluating expression 'SeleniumLibrary.driver' failed: AttributeError: module 'SeleniumLibrary' has no attribute 'driver'"

SeleniumLibrary中driver属性的定义代码:

class SeleniumLibrary(DynamicCore):

    ROBOT_LIBRARY_SCOPE = "GLOBAL"
    ROBOT_LIBRARY_VERSION = __version__

    @property
    def driver(self) -> WebDriver:
        """Current active driver.

        :rtype: selenium.webdriver.remote.webdriver.WebDriver
        :raises SeleniumLibrary.errors.NoOpenBrowser: If browser is not open.
        """
        if not self._drivers.current:
            raise NoOpenBrowser("No browser is open.")
        return self._drivers.current

已执行的Open Browser命令:

Open Browser    url=${url}    browser=${browser}    alias=Test    options=${options}    executable_path=${driverPath}

尝试过的访问命令:

  • Log ${SeleniumLibrary.driver}
  • ${driver}= SeleniumLibrary.driver
  • ${driver}= Evaluate SeleniumLibrary.driver

解决方法

出错的核心原因是直接访问了SeleniumLibrary模块,而非实例化后的库对象。driver是类的实例属性(通过@property定义),必须通过已加载的SeleniumLibrary实例来访问,而不是模块本身。

正确的访问方式:

  1. 无自定义库别名的场景:
    直接获取库实例后访问driver属性:
${driver}=    Get Library Instance    SeleniumLibrary
Log    ${driver.driver}
  1. 存在浏览器别名的场景(如你的Test别名):
    先切换到目标别名的浏览器,再获取实例访问driver:
Switch Browser    alias=Test
${selenium_lib}=    Get Library Instance    SeleniumLibrary
${driver}=    Set Variable    ${selenium_lib.driver}
Log    ${driver}

也可以结合Evaluate关键字实现:

${selenium_lib}=    Get Library Instance    SeleniumLibrary
${driver}=    Evaluate    ${selenium_lib}.driver

关键说明:

  • Get Library Instance是获取已加载的SeleniumLibrary实例的核心关键字,这是访问实例属性的前提。
  • 当存在多个浏览器实例时,必须先用Switch Browser切换到目标别名,确保driver属性返回的是你需要的那个浏览器对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 15:27:36