如何在Robot Framework中编写多个条件的if语句

问题描述 投票:0回答:4

我在 Robot Framework 中编写

if
条件时遇到困难。

我要执行

Run Keyword If '${color}' == 'Red' OR '${color}' == 'Blue'  OR '${color}' == 'Pink'    Check the quantity

我可以在一个条件下使用这个“

Run keyword If
”关键字,但是对于多个条件,我收到此错误:

失败:关键字名称不能为空。

我也想使用这些关键字:

Run Keyword If '${color} == 'Blue' AND '${Size} == 'Small' AND '${Design}' != '${Simple}'      Check the quantity

还有

Run Keyword Unless '${color}' == 'Black' OR '${Size}' == 'Small' OR '${Design}' == 'Simple'

但我最终还是遇到了错误。

python python-2.7 selenium robotframework
4个回答
64
投票

您应该使用小写字母“or”和“and”而不是 OR 和 AND。

还要注意关键字和参数之间的空格/制表符(您至少需要两个空格)。

这是一个代码示例,其中三个关键字运行良好:

这是文件

ts.txt

  *** test cases ***
  mytest
    ${color} =  set variable  Red
    Run Keyword If  '${color}' == 'Red'  log to console  \nexecuted with single condition
    Run Keyword If  '${color}' == 'Red' or '${color}' == 'Blue' or '${color}' == 'Pink'  log to console  \nexecuted with multiple or

    ${color} =  set variable  Blue
    ${Size} =  set variable  Small
    ${Simple} =  set variable  Simple
    ${Design} =  set variable  Simple
    Run Keyword If  '${color}' == 'Blue' and '${Size}' == 'Small' and '${Design}' != '${Simple}'  log to console  \nexecuted with multiple and

    ${Size} =  set variable  XL
    ${Design} =  set variable  Complicated
    Run Keyword Unless  '${color}' == 'Black' or '${Size}' == 'Small' or '${Design}' == 'Simple'  log to console  \nexecuted with unless and multiple or

这是我执行它时得到的结果:

$ pybot ts.txt
==============================================================================
Ts
==============================================================================
mytest                                                                .
executed with single condition
executed with multiple or
executed with unless and multiple or
mytest                                                                | PASS |
------------------------------------------------------------------------------

0
投票

只需确保在“and”关键字前后添加一个空格..


0
投票

你应该使用小写的 and, or


-2
投票

下面的代码运行良好:

Run Keyword if    '${value1}' \ \ == \ \ '${cost1}' \ and \ \ '${value2}' \ \ == \ \ 'cost2'    LOG    HELLO
© www.soinside.com 2019 - 2024. All rights reserved.