Как запустить, если если еще условие, основанное на видимости элемента в каркасе робота селена? - PullRequest
1 голос
/ 13 февраля 2020

Я автоматизирую поток формы регистрации пользователя, где при успешной регистрации отображается сообщение об успешном завершении, а любая ошибка проверки выдает текст предупреждения. Для этого я пишу поток if-else, основанный на видимости или наличии элемента на странице. Я передам управление указанному ключевому слову c с этим условием

$ {SuccessBreadcrumb} - это элемент, который отображается при успешной регистрации

Фрагмент кода

*** Settings ***
Library  SeleniumLibrary

*** Variables ***
${SuccessBreadcrumb} =  xpath=//a[contains(text(),'Success')]
${SuccessMsgLocator} =  xpath=//p[contains(text(), 'successfully created')]
${AlertMsg} =  xpath=//div[@class='text-danger']

*** Keywords ***
Verify Validation Message
    [Arguments]  ${UserDetails}
    sleep  2s
    run keyword if  ${SuccessBreadcrumb}  is visible  Keyword 1
#   ...  else  Keyword 2


Keyword 1
    [Arguments]  ${UserDetails}
    ${AccountCreatedText} =  get text  ${SuccessMsgLocator}
    should contain  ${AccountCreatedText}  ${UserDetails.ValidateMsg}  ignore_case=true

# Keyword 2

Журнал ошибок

Run Keyword If ${SuccessBreadcrumb}, is visible, VerifySuccessText
Documentation:  
Runs the given keyword with the given arguments, if condition is true.

Start / End / Elapsed:  20200213 12:27:52.882 / 20200213 12:27:52.882 / 00:00:00.000
12:27:52.882    FAIL    Evaluating expression 'xpath=//a[contains(text(),'Success')]' failed: SyntaxError: invalid syntax (<string>, line 1)

1 Ответ

0 голосов
/ 13 февраля 2020

В документации для Run Keyword Если , то не существует примера с объектом. Тем не менее, использование комбинации Run Keyword If с Run Keyword And Return Status позволит вам создать способ обработки проходных и неудачных ситуаций в одном и том же тестовом примере или ключевом слове.

*** Settings ***
Library    SeleniumLibrary

*** Test Cases ***
Check Element Visible
    Open Browser
    ...    url=https://www.google.com
    ...    browser=chrome

    ${passed}    Run Keyword And Return Status  
                 ...    Element Should Be Visible    xpath://*[@id="hplogo"]
    Run Keyword If     ${passed}       Keyword Passed
    ...    ELSE                        Keyword Failed
    [Teardown]    Close Browser

Check Element Not Visible
    Open Browser
    ...    url=https://www.google.com
    ...    browser=chrome

    ${passed}    Run Keyword And Return Status  
                 ...    Element Should Be Visible    xpath://*[@id="xxxx"]
    Run Keyword If     ${passed}       Keyword Passed
    ...    ELSE                        Keyword Failed
    [Teardown]    Close Browser

*** Keywords ***
Keyword Passed
    Log To Console    Passed

Keyword Failed
    Log To Console    Failed    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...