Выход из цикла в Robot Framework - PullRequest
0 голосов
/ 23 октября 2019

Используя Robot Framework, я пытаюсь создать цикл FOR, в котором случайное значение выбирается из списка. После того, как случайное значение выбрано, открывается страница для этого значения, затем я хочу проверить данные, доступные для этой стороны, и т. Д. И затем цикл должен завершиться, если значение соответствует.

В настоящее время я могу выбрать случайное значение и перейти на страницу этого значения, но не могу выполнять дальнейшие действия, поскольку сценарии не выполняются, поскольку цикл FOR находит другое значение из списка.

@{ORGANISATIONAL_NAME}  JSK MARKETING  KEDARNATH COMOTRADE  PONDICHERRY SRI LAKSHMI

View Basic Info of the Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    input text  ${SEARCH_BAR}  ${value}
    log to console  \nvalue: ${value}
    click element  ${SEARCH_BUTTON}
    log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  click element  ${JSK_MARKETING}
     ...  ELSE IF  '${value}' == 'KEDARNATH COMOTRADE'  click element  ${KEDARNATH_COMOTRADE}
     ...  ELSE IF  '${value}' == 'PONDICHERRY SRI LAKSHMI'  click element  ${PONDICHERRY_SHRI_LAKSHMI}
     ...  ELSE  log to console  condition didn't met
    FOR  ${value}  IN  @{ORGANISATIONAL_NAME}
        log to console  ${value}
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'JSK MARKETING'
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'KEDARNATH COMOTRADE'
        click element  ${BASIC_INFO}
        wait until page contains  Summary
        Exit For Loop If  '${value}' == 'PONDICHERRY SRI LAKSHMI'
    END

Проверка должна быть выполнена для выбранного случайного значения из списка.

1 Ответ

0 голосов
/ 23 октября 2019

Ваша проблема в том, что вы сначала выбираете случайное значение. И затем вы перебираете список в том порядке, в котором он был создан.

В чем причина цикла for? Потому что я не понимаю, что вы пытаетесь сделать в цикле

РЕДАКТИРОВАТЬ:

Если в вашем списке будут только эти 3 значения, вы можете сделать это:

View Basic Info Of The Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    Input Text  ${SEARCH_BAR}  ${value}
    Log To Console  \nvalue: ${value}
    Click Element  ${SEARCH_BUTTON}
    Log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  Click Element  ${JSK_MARKETING}
    ...  ELSE IF    '${value}' == 'KEDARNATH COMOTRADE'  Click Element  ${KEDARNATH_COMOTRADE}
    ...  ELSE IF    '${value}' == 'PONDICHERRY SRI LAKSHMI'  Click Element  ${PONDICHERRY_SHRI_LAKSHMI}
    Log To Console  ${value}
    Click Element  ${BASIC_INFO}
    Wait Until Page Contains  Summary

Если в списке будет больше значений и вы хотите выполнить действие только в одном из этих 3 случаев, попробуйте сделать следующее:

View Basic Info Of The Party
    ${value} =  Evaluate  random.choice($ORGANISATIONAL_NAME)  random
    Input Text  ${SEARCH_BAR}  ${value}
    Log To Console  \nvalue: ${value}
    Click Element  ${SEARCH_BUTTON}
    Log  ${value}
    Run Keyword If  '${value}' == 'JSK MARKETING'  Click Element  ${JSK_MARKETING}
    ...  ELSE IF    '${value}' == 'KEDARNATH COMOTRADE'  Click Element  ${KEDARNATH_COMOTRADE}
    ...  ELSE IF    '${value}' == 'PONDICHERRY SRI LAKSHMI'  Click Element  ${PONDICHERRY_SHRI_LAKSHMI}
    ...  ELSE  Log To Console  condition didn\'t met
    Run Keyword If  '${value}' == 'JSK MARKETING' or '${value}' == 'KEDARNATH COMOTRADE' or '${value}' == 'PONDICHERRY SRI LAKSHMI'     Run Keywords
    ...  Log To Console  ${value}   AND
    ...  Click Element  ${BASIC_INFO}   AND
    ...  Wait Until Page Contains  Summary

Iнадеюсь, это поможет.

...