在Robot Framework的循环中包含一个循环

时间:2016-01-25 07:44:30

标签: loops robotframework

我在RF中的另一个现有循环中使用循环时出现问题 这只是我需要的一个例子:我有一个人员列表(@ {people}),每个人都有一个项目列表。

我执行以下操作:

:FOR | ${person} | IN @{people} 
\ | @{items}= | Create List | xpath=//div[@class='item'] 
\ | :FOR ${item} | IN @{items} 
\ | \ | ...

问题出现在第二个问题上:因为我收到错误'关键字:未找到FOR'。我做错了吗?或者有没有其他方法在另一个循环中包含一个循环?

3 个答案:

答案 0 :(得分:6)

According to User Guide,不直接支持嵌套for循环,但可以在for循环中使用user关键字并在那里使用另一个for循环

*** Keywords ***
Loop over people
    :FOR  ${person}  IN  @{people} 
    \  @{items}=  Create List  xpath=//div[@class='item'] 
    \  Loop over items  @{items}

Loop over items    
    [Arguments]  @{items}
    :FOR  ${item}  IN  @{items} 
    \  ...

答案 1 :(得分:0)

这个问题也与你的Nested loop in RobotFramework

相同

也可以在这里分享相同的答案。

嵌套for循环

嵌套for循环直接不支持,但可以在for循环中使用user关键字,并在那里使用另一个for循环。

*** Keywords ***
Handle Table
    [Arguments]    @{table}
    :FOR    ${row}    IN    @{table}
    \    Handle Row    @{row}

Handle Row
    [Arguments]    @{row}
    :FOR    ${cell}    IN    @{row}
    \    Handle Cell    ${cell}

参考:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#nested-for-loops

答案 2 :(得分:0)

可以使用以下自定义关键字:How can I implement Robot Framework-style variables in this nestable For Loop?

请注意,这不支持While循环,For循环不是" IN RANGE"或者Robot Framework风格的变量构造(因此问题),但是我一直都在使用它测试以避免为内部for循环使用第二个关键字。它更清洁了。