Как написать несколько условий if-оператора в Robot Framework

У меня проблемы с написанием, if условия в Robot Framework.

Я хочу выполнить

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

Я могу использовать это Run keyword If " Run keyword If " с одним условием, но для более чем одного условия, я получил эту ошибку:

FAIL: имя ключевого слова не может быть пустым.

А также я хотел бы использовать эти ключевые слова:

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'

Но я просто получаю ошибки.

Ответ 1

Вы должны использовать маленькие заглавные буквы "или" и "и" вместо 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 |
------------------------------------------------------------------------------

Ответ 2

Просто убедитесь, что ставьте один пробел до и после "и" Ключевое слово..

Ответ 3

Код ниже работал нормально:

Run Keyword if    '${value1}' \ \ == \ \ '${cost1}' \ and \ \ '${value2}' \ \ == \ \ 'cost2'    LOG    HELLO