有没有办法将Robot框架资源文件内容导入Python脚本?
显然,可以在一些Python脚本中导入Python Robot框架库。但是,有没有一种神奇的方法可以在Python脚本中导入Robot框架资源文件?资源文件是用RF语法编写的,因此需要一些专用的Python模块来导入它(实际上是将RF语法转换为Python)。也许像这样的东西已经存在,或者甚至可以使用一些RF内置模块,就好像我理解正确一样,在脚本执行期间,RF语法被转换为Python调用 更新2018-06-18: 正如A.Kootstra所建议的,可以使用以下方法在Python脚本中导入Robot关键字:有没有办法将Robot框架资源文件内容导入Python脚本?,python,import,robotframework,translate,Python,Import,Robotframework,Translate,显然,可以在一些Python脚本中导入Python Robot框架库。但是,有没有一种神奇的方法可以在Python脚本中导入Robot框架资源文件?资源文件是用RF语法编写的,因此需要一些专用的Python模块来导入它(实际上是将RF语法转换为Python)。也许像这样的东西已经存在,或者甚至可以使用一些RF内置模块,就好像我理解正确一样,在脚本执行期间,RF语法被转换为Python调用 更新2018-06-18: 正如A.Kootstra所建议的,可以使用以下方法在Python脚本中导入Rob
from robot.libraries.BuiltIn import BuiltIn
BuiltIn().import_resource('${EXECDIR}/resource.robot')
但是,如何从Python脚本中导入的Robot资源中访问任何关键字?BuiltIn().import_资源不会将任何处理程序返回到导入的库
我会打电话
BuiltIn.call_method
但它需要对象实例作为第一个参数。导入的资源文件也不存在于由返回的dict中
globals()
BuiltIn()
是其中的一部分,在ReadTheDocs上的单独文档中有描述。下面是一个更全面的示例,向您展示了如何做到这一点:
importresource.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')
资源机器人
*** Keywords ***
Resource Keyword
Log To Console \nResource Keyword triggered.
*** Settings ***
Library importresource
*** Test Cases ***
TC
custom keyword
testcase.robot
*** Keywords ***
Resource Keyword
Log To Console \nResource Keyword triggered.
*** Settings ***
Library importresource
*** Test Cases ***
TC
custom keyword
将导致:
==============================================================================
TC
Resource Keyword triggered.
| PASS |
------------------------------------------------------------------------------
BuiltIn()
是其中的一部分,在ReadTheDocs上的单独文档中有描述。下面是一个更全面的示例,向您展示了如何做到这一点:
importresource.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')
资源机器人
*** Keywords ***
Resource Keyword
Log To Console \nResource Keyword triggered.
*** Settings ***
Library importresource
*** Test Cases ***
TC
custom keyword
testcase.robot
*** Keywords ***
Resource Keyword
Log To Console \nResource Keyword triggered.
*** Settings ***
Library importresource
*** Test Cases ***
TC
custom keyword
将导致:
==============================================================================
TC
Resource Keyword triggered.
| PASS |
------------------------------------------------------------------------------
第二个例子也回答了这个问题,谢谢你的提示。实际上,可以使用robot.libraries.BuiltIn import BuiltIn().import_resource('${EXECDIR}/resource.robot')导入robot资源。但是,如何访问Python脚本中导入的Robot资源中的任何关键字?我根据上一个提示更新了问题。第二个示例也回答了这个问题,感谢您的提示。实际上,可以使用robot.libraries.BuiltIn import BuiltIn().import_resource('${EXECDIR}/resource.robot')导入robot资源。但是,如何从Python脚本中导入的Robot资源中访问任何关键字?我根据上一个提示更新了这个问题