Mar*_*zyk 1 python import translate robotframework
显然,可以在某些 Python 脚本中导入 Python Robot Framework 库。然而,有没有一种神奇的方法可以在Python脚本中导入Robot Framework资源文件呢?资源文件是用 RF 语法编写的,因此需要一些专用的 Python 模块来导入它(实际上将 RF 语法翻译为 Python)。也许类似的东西已经存在,甚至可以使用一些 RF 内置模块,就好像我理解正确一样,在脚本执行期间 RF 语法被转换为 Python 调用。
2018年6月18日更新:
正如 A. Kootstra 所建议的,可以使用以下命令在 Python 脚本中导入 Robot 关键字:
from robot.libraries.BuiltIn import BuiltIn
BuiltIn().import_resource('${EXECDIR}/resource.robot')
Run Code Online (Sandbox Code Playgroud)
但是,如何访问 Python 脚本中导入的 Robot 资源中的任何关键字?builtIn().import_resource 不会将任何处理程序返回到导入的库。
我会打电话
BuiltIn.call_method
Run Code Online (Sandbox Code Playgroud)
但它需要对象实例作为第一个参数。导入的资源文件也不存在于返回的字典中
globals()
Run Code Online (Sandbox Code Playgroud)
BuiltIn()是Robot Framework API的一部分,ReadTheDocs 上的单独文档对此进行了描述。下面是一个更全面的示例,向您展示了如何执行此操作:
导入资源.py
from robot.libraries.BuiltIn import BuiltIn
class importresource(object):
ROBOT_LIBRARY_VERSION = 1.0
def __init__(self):
pass
def custom_keyword(self):
BuiltIn().import_resource('${EXECDIR}/resource.robot')
BuiltIn().run_keyword('Resource Keyword')
Run Code Online (Sandbox Code Playgroud)
资源机器人
*** Keywords ***
Resource Keyword
Log To Console \nResource Keyword triggered.
Run Code Online (Sandbox Code Playgroud)
测试用例.robot
*** Settings ***
Library importresource
*** Test Cases ***
TC
custom keyword
Run Code Online (Sandbox Code Playgroud)
将导致:
==============================================================================
TC
Resource Keyword triggered.
| PASS |
------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7507 次 |
| 最近记录: |