Robotframework robot框架中的If关键字出现问题

Robotframework robot框架中的If关键字出现问题,robotframework,Robotframework,我对在Robot框架中使用if有疑问 我正在尝试下面的东西,但它不工作。我需要一些帮助 [Arguments] ${device} Run Keyword if ${device} is in @{device_list} do this................ then do this............... Run Keyword if ${device} is in @{server_list} do this................ then do this.

我对在Robot框架中使用if有疑问

我正在尝试下面的东西,但它不工作。我需要一些帮助

[Arguments]    ${device}
Run Keyword if ${device} is in @{device_list}
do this................
then do this...............
Run Keyword if ${device} is in @{server_list}
do this................
then do this...............
Run Keyword Unless ${device} is in @{router_list}
do this................
then do this...............
仅供参考 设备列表=[a、b、c] 服务器列表=[s,d,f] 路由器列表=[g,h,j] 我使用for循环从代码的某个部分的不同列表中获取设备值,并根据从不同列表中获取的设备值运行代码的某个部分

我怎样才能做到这一点?任何人都可以分享他们在机器人框架中实现这一点的想法吗? 提前谢谢

谢谢,

怎么样

Library Collections

${res}=    List Should Contain Value    ${device}    @{device_list}
Run Keyword If    ${res}   Do This
Run Keyword Unless    ${res}   Do That
实际上我没有运行它,但我认为它应该是这样工作的。

怎么样

Library Collections

${res}=    List Should Contain Value    ${device}    @{device_list}
Run Keyword If    ${res}   Do This
Run Keyword Unless    ${res}   Do That

实际上我没有运行它,但我认为它应该是这样工作的。

当作为对象引用列表时,需要使用
$
而不是
@

如果您使用的是robot framework 2.9或更高版本,则可以省略表达式中的大括号,这些变量将被视为同名的python变量。这在库文档的一节中有记录

如果要在条件为真时运行多个步骤,则必须在条件内部使用

下面是一个完整的工作示例:

*** Variables ***
@{device_list}    one  two  three  four
${device}         two

*** Keywords ***
Do something
    log    do something was called

Do something else
    log    do something else was called

*** Test Cases ***
Example
    run keyword if    $device in $device_list
    ...  Run keywords
    ...  Do something
    ...  AND
    ...  Do something else

当作为对象引用列表时,需要使用
$
而不是
@

如果您使用的是robot framework 2.9或更高版本,则可以省略表达式中的大括号,这些变量将被视为同名的python变量。这在库文档的一节中有记录

如果要在条件为真时运行多个步骤,则必须在条件内部使用

下面是一个完整的工作示例:

*** Variables ***
@{device_list}    one  two  three  four
${device}         two

*** Keywords ***
Do something
    log    do something was called

Do something else
    log    do something else was called

*** Test Cases ***
Example
    run keyword if    $device in $device_list
    ...  Run keywords
    ...  Do something
    ...  AND
    ...  Do something else

谢谢你的回答。但我有三个条件,比如和怎么提到的两个条件。你有关于我如何在三种情况下运行这个的IDE吗。我也在寻找一些东西,比如如果第一个条件不正确,那么忽略它,然后运行第二个,如果第二个条件不正确,那么忽略它/或错误,然后运行第三个条件,如果第三个条件不正确,那么忽略它。我怎样才能做到这一点。有什么想法吗?对不起,我显然误解了你问题的要点,但我认为@Bryan回答得很好。谢谢你的回答。但我有三个条件,比如和怎么提到的两个条件。你有关于我如何在三种情况下运行这个的IDE吗。我也在寻找一些东西,比如如果第一个条件不正确,那么忽略它,然后运行第二个,如果第二个条件不正确,那么忽略它/或错误,然后运行第三个条件,如果第三个条件不正确,那么忽略它。我怎样才能做到这一点。有什么想法吗?对不起,我显然误解了你问题的要点,但我认为@Bryan回答得很好。