用机器人语言编写复杂的机器人关键字有时非常耗时,因为机器人语言不是真正的编程语言。我想在python中编写我的关键字,并且只在robotframework语言中公开简单的html表。问题是我们已经有很多用机器人语言编写的低级机器人关键字(在.robot和.txt文件中)。是否可以使用robotframework python api从python代码中执行这些关键字?
答案 0 :(得分:8)
是的,有可能。在您的python代码中,您可以获得对BuiltIn库的引用,然后使用Run Keyword关键字运行您想要的任何关键字。
例如,您可以编写一个python关键字,将另一个关键字作为参数并运行它。以下可能是你在python中的表现:
# MyLibrary.py
from robot.libraries.BuiltIn import BuiltIn
def call_keyword(keyword):
return BuiltIn().run_keyword(keyword)
然后,您可以告诉此关键字调用任何其他关键字。这是一个示例套件,其中包含一个用robot编写的关键字,然后让python代码执行它:
*** Settings ***
| Library | MyLibrary.py
*** Keywords ***
| Example keyword
| | log | hello, world
*** Test Cases ***
| Example of calling a python keyword that calls a robot keyword
| | Call keyword | Example keyword
注意测试用例如何告诉call_keyword
方法运行关键字Example Keyword
。当然,你没有有传递关键字。关键点是获取对BuiltIn库的引用,然后允许您调用该库中的任何方法。
这在机器人框架用户指南的标题为Using Robot Framework's Internal Modules的部分中有记录。更具体地说,请参阅Using BuiltIn Library部分。
请注意,如果关键字调用run_keyword
方法,则说明您需要调用register_run_keyword。我不会在这里复制文档。您可以通过查看BuiltIn模块本身来获取文档,或者在交互式python会话中运行以下代码:
>>> import robot.libraries.BuiltIn
>>> help(robot.libraries.BuiltIn.register_run_keyword)