我一直在探索Robot框架,遇到了这个我正在尝试使用的示例。这个例子非常有效,除了我想尝试添加for循环和if语句之外。我甚至还没有开始if语句,因为我被for循环卡住了。请允许我建议如何构造for循环和if语句
这是for循环的一个基本尝试,用于在要测试的脚本末尾添加:
test.keywords.create('For', args=['1','IN','10'], type='for')
error - TypeError: __init__() got an unexpected keyword argument 'flavor'
下面的代码只是显示我正在尝试添加基本for循环,但编译时出现上述错误
from robot.api import TestSuite
suite = TestSuite('Activate Skynet')
suite.imports.library('OperatingSystem')
test = suite.tests.create('Should Activate Skynet', tags=['smoke'])
test.keywords.create('Set Environment Variable', args=['SKYNET', 'activated'], type='setup')
test.keywords.create('Environment V`enter code here`ariable Should Be Set', args=['SKYNET'])
test.keywords.create('For', args=['1','IN','10'], type='for')
原点-https://robot-framework.readthedocs.io/en/2.8.1/autodoc/robot.running.html
test.keywords.create('Create List', args=['a', 'b', 'c'], assign=['@{list}'])
for_kw = ForLoop(['${l}'], ['@{list}'], flavor='IN')
for_kw.keywords.create('log', args=['${l}'])
test.keywords.create()
test.keywords.append(for_kw)
更新:有了Robot框架,这一点已经改变,变得更容易做到
发行说明:Running and result models have been changed
例如,请查看另一个答案:How to write FOR loop and IF statement programmatically with Robot Framework 4.0?
在Robot Framework 4.0之前:
IF
语句if
语句应该是带有所需参数的Run Keyword If
关键字。它是一个与其他关键字类似的关键字,因此您应该在它的args
列表中列出所有其他关键字True
分支的关键字名称李>True
分支的关键字,则将任何args
单独添加到该关键字。单独列出李>ELSE IF
关键字李>ELSE IF
条件李>ELSE IF
分支的关键字名称李>ELSE IF
分支,则将任何args
分别添加到该分支的关键字。单独列出李>ELSE
关键字李>ELSE
分支的关键字名称李>ELSE
分支的关键字,则将任何args
单独添加到该关键字。单独列出李>这是日志中的情况:
FOR
循环至于} 类实现的特殊关键字。以下是构造函数:
for
循环。它是由基于robot.running.model.Keyword
类的^{它有一个
flavor
参数,也就是循环类型。所以它是IN
、IN RANGE
、IN ZIP
等等现在实例化一个
robot.running.model.Keyword
,尽管可以将其类型设置为for
,但它没有flavor
属性。因此,当您执行代码时,它将抛出您看到的错误。这是因为ForRunner
将尝试访问flavor
属性因此,您必须使用
ForLoop
类。此外,我正在使用Robot Framework 3.1.2,因此在我的情况下,错误可能会有所不同,但方法应该是相同的下面是它的外观:
否此操作仍将失败并出现错误:
因此,您必须像这样填充它:
完整示例:
如果您运行此命令,它将只生成一个输出XML,那么您必须手动运行rebot以获得一个日志和报告HTML文件
相关问题 更多 >
编程相关推荐