如何在 ride 1.7.4.2 中退出 Robot Framework 4.0 中的嵌套 for 循环

How to exit a nested for loop in Robot Framework 4.0 in ride 1.7.4.2

我想在 ${port} == 3 时退出所有嵌套的 for 循环,但是无论我使用什么关键字,例如 'Exit for loop' 或 'Exit for loop if ${port} == 3' ,它仍然会继续整个嵌套的 for 循环。同时 Robot Framework ride 告诉我 'break' 是保留关键字,不能使用。 我的代码如下。

*** Test Cases ***
demo_01
    ${port}    Set Variable    0
FOR    ${i}    IN RANGE    2
FOR    ${j}    IN RANGE    2
FOR    ${k}    IN RANGE    2
    ${port}    Evaluate    ${port} + 1
    Log    ${port}
    IF    ${port} == 3
    Exit FOR Loop
END
END
END
END

结果在这里 enter image description here

它刚刚退出内部 for 循环。 :(

所以我想知道如何退出 Robot Framework Ride 中的嵌套 for 循环。谢谢你们。 顺便说一句,下面是我的 pip 列表

robotframework                  4.1.2
robotframework-databaselibrary  1.2.4
robotframework-pythonlibcore    3.0.0
robotframework-ride             1.7.4.2
robotframework-selenium2library 3.0.0
robotframework-seleniumlibrary  3.0.0
robotframework-sshlibrary       3.8.0

我的 python 版本是

C:\WINDOWS\system32>python -V
Python 3.7.9

谢谢

实现此目的的最简单方法是将封闭的 FOR 循环移动到关键字中,然后 return 在满足条件时从中移出。在您的情况下,它将如下所示:

*** Keywords ***
Log ports
    [Return]    Return when port 3 is reached

    ${port}    Set Variable    0
    FOR    ${i}    IN RANGE    2
        FOR    ${j}    IN RANGE    2
            FOR    ${k}    IN RANGE    2
                ${port}    Evaluate    ${port} + 1
                Log    ${port}
                IF    ${port} == 3
                    Return From Keyword
                END
            END
        END
    END

然后在测试中调用上面的关键字即可:

*** Test Cases ***
demo_01
    Log ports