有没有办法将Robot Framework资源文件内容导入Python脚本?

时间:2018-06-15 08:16:27

标签: python import robotframework translate

显然,可以在某些Python脚本中导入Python Robot Framework库。但是,有没有一种神奇的方法来在Python脚本中导入Robot Framework资源文件?资源文件是用RF语法编写的,因此需要一些专用的Python模块来导入它(将RF语法转换为Python其实)。也许这样的事情已经存在,甚至可以使用一些RF内置模块,就像我理解正确一样,在脚本执行期间,RF语法被转换为Python调用。

更新2018-06-18:

根据A. Kootstra的建议,可以使用以下方法在Python脚本中导入Robot关键字:

BuiltIn.call_method

但是,如何从Python脚本中导入的Robot资源中访问任何关键字? BuiltIn()。import_resource不会向导入的lib返回任何处理程序。

我会打电话给

globals()

但它需要对象实例作为第一个参数。导入的资源文件也不存在于

返回的字典中
$table->integer('category_id')->unsigned()->index();

1 个答案:

答案 0 :(得分:2)

BuiltIn()Robot Framework API的一部分,在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')

<强> resource.robot

*** Keywords ***
Resource Keyword
    Log To Console   \nResource Keyword triggered.

<强> testcase.robot

*** Settings ***
Library    importresource

*** Test Cases ***
TC
    custom keyword

将导致:

==============================================================================
TC                                                                    
Resource Keyword triggered.
| PASS |
------------------------------------------------------------------------------