Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Robot Framework - performing multiple keywords after running keyword if

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.

like image 378
PurpleBeni Avatar asked May 04 '15 13:05

PurpleBeni


1 Answers

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
like image 165
Bryan Oakley Avatar answered Oct 27 '22 12:10

Bryan Oakley