【发布时间】:2017-08-19 02:03:08
【问题描述】:
是否可以从加载到机器人框架中的库中访问静态类变量?
例如,假设我在 .robot 文件中包含以下 python 库:
foo = 'value'
class MyClass(self):
bar = 'value'
在包含它的 .robot 文件中是否有办法引用 foo 或 bar?
【问题讨论】:
标签: robotframework
是否可以从加载到机器人框架中的库中访问静态类变量?
例如,假设我在 .robot 文件中包含以下 python 库:
foo = 'value'
class MyClass(self):
bar = 'value'
在包含它的 .robot 文件中是否有办法引用 foo 或 bar?
【问题讨论】:
标签: robotframework
您可以通过使用Get Library Instance 获取对原始python 模块的引用来获取这些值,然后使用extended variable syntax 获取值。
例如,考虑一个名为 MyLibrary.py 的库:
# MyLibrary.py
foo = "this is foo"
class MyClass(object):
bar = "this is bar"
您可以使用Get Library Instance 访问 foo 和 bar 来获取库的句柄:
*** Settings ***
| Library | MyLibrary.py
*** Test Cases ***
| Example of accessing variables in a library
| | ${lib}= | Get Library Instance | MyLibrary
| |
| | Should be equal as strings | ${lib.foo} | this is foo
| | Should be equal as strings | ${lib.MyClass.bar} | this is bar
【讨论】:
您应该将 ROBOT_LIBRARY_SCOPE = 'GLOBAL' 添加到 MyClass。如果不是 Get Library Instance 将创建 MyClass 的第二个实例。
【讨论】: