【问题标题】:Include a loop in a loop in Robot Framework在 Robot Framework 的循环中包含循环
【发布时间】:2019-04-24 23:51:57
【问题描述】:

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

我执行以下操作:

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

问题出在第二个:FOR 我收到错误“关键字:FOR 未找到”。我做错了什么吗?或者有没有其他方法可以在另一个循环中包含一个循环?

【问题讨论】:

标签: loops robotframework


【解决方案1】:

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} 
    \  ...

【讨论】:

    【解决方案2】:

    这个问题也和你一样Nested loop in RobotFramework

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

    嵌套 for 循环

    直接不支持嵌套 for 循环,但可以在 for 循环中使用用户关键字并在其中有另一个 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

    【讨论】:

      【解决方案3】:

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

      请注意,这不支持 While 循环、非“IN RANGE”的 For 循环或 Robot Framework 样式的变量构造(因此是问题所在),但我一直使用它进行测试以避免出现内部 for 循环的第二个关键字。干净多了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-19
        • 2015-09-12
        • 2019-10-21
        • 2018-06-21
        • 2023-01-28
        • 1970-01-01
        • 2013-07-25
        • 2013-09-19
        相关资源
        最近更新 更多