在机器人框架中的for循环上放置一个条件

时间:2017-07-24 12:38:12

标签: robotframework

我在下面有for循环,我正试图为它设置一个条件:

: FOR    ${i}    IN RANGE    ${size}
\    Validate Item List    ${items[${i}]}

这样只有在满足条件时才运行for。 我尝试过“运行关键字if”,但这似乎不起作用:

Run keyword if    ${flag}>0    : FOR    ${i}    IN RANGE    ${size}
...    \    Validate Item List    ${items[${i}]}

我得到“没有名字的关键字':FOR'找到了。”。

注意:标志可以是零或负数。

2 个答案:

答案 0 :(得分:5)

'运行关键字如果'关键字不能直接用于“For-Loop”。

在用户定义的关键字中应该提到For循环语句,然后应该提到“Run Keyword If”,如下所示:

 User Defined function for For Loop
    : FOR    ${i}    IN RANGE    ${size}
    \    Validate Item List    ${items[${i}]}


 Run Keyword If   ${flag}>0   User Defined function for For Loop

答案 1 :(得分:2)

从代码的角度来看,我可以想象两种方法:

${size} =    Run Keyword If    "${flag}">"0"    Get Size    #Whatever you want here
...    ELSE    Set Variable    0    #0 in order to make the loop not looping at all
: FOR    ${i}    IN RANGE    ${size}
\    Validate Item List    ${items[${i}]}

或者您可以执行以下操作:

: FOR    ${i}    IN RANGE    ${size}
\    Exit For Loop If    "${flag}">"0"
\    Validate Item List    ${items[${i}]}