Robot Framework - performing multiple keywords after running keyword if

25,139

You can do a couple of things. The first is to create a new keyword that calls all the other keywords, and then call that from Run keyword if. This might be the most readable solution, but at the expense of having to write and document another keyword.

The other choice is to use a combination of Run keyword if and Run keywords, like so:

| | Run Keyword if | '${title}' == 'Some Title'
| | ... | Run Keywords
| | ... | Click Element | xpath=some element
| | ... | AND | Element Text Should Be  |  xpath=some element | some text
| | ... | ELSE
| | ... | Click Element | xpath=other element
Share:
25,139
PurpleBeni
Author by

PurpleBeni

QA Automation Developer.

Updated on October 16, 2020

Comments

  • PurpleBeni
    PurpleBeni over 3 years

    I am trying to execute multiple keywords if a condition evaluates as true.

    I tried to do something like this

     *** Test Cases ***
    | Example
    
     *** Keywords ***
    | Example
    |  | ${title}=  Get Title
    |  | Run Keyword If      | '${title}' == 'Some Title' 
    |  | ... Click Element   |  xpath=some element 
    |  | ... Element Text Should Be  |   xpath=some element   |  some text
    |  | ... Else
    |  | ... Click Element   | xpath=other element  
    

    The error I get when running this is that the Click Element expects 1 argument but gets 4.

    I know that I can set the if statement in the Test cases section and if evaluated true it will run a keyword with all the stuff I want but I wonder if there is a way to do it from the Keywords section.

    Thanks.