Question: I want to execute two keywords in a test-case out of which, one keyword has to be executed only once and the other has to be executed multiple times. Please find the code below to understand the logic of the execution:

```
 *** Settings ***
 Test Setup         OPEN CHROME BROWSER
 Test Teardown     CLOSE CHROME BROWSER
 Test Template     KEYWORD1
 Force Tags         Smoke

 *** Test Cases ***       userid         userpass      content
 VALID CREDENTIAL    userid@mysite.com    mypass      CONTENT A
                                                      CONTENT B
                                                      CONTENT C
 *** Keywords ***
--------------------------------------------------------------------------
KEYWORD 1
[Arguments]  ${userid} {userpass}
GO TO LOGIN PAGE
ENTER USERID
ENTER PASSWORD
CLICK ON LOGIN BUTTON
-----needs to run once and then KEYWORD 2 should run thrice---------------
KEYWORD 2
[Arguments] ${content}
CLICK ON CONTENT TILE  ${content}
DO SOME ACTION
GO TO HOME

```

I want 'keyword 1' to be executed only once and 'keyword 2' to be repeated 3 times as per the content list. Please guide me how to handle this. 

Current issue:
While continuing with second test it asks userid and userpass to be passed again.

What I want to achieve:
Login once into the web-portal(KEYWORD1). RUN KEYWORD 2 with CONTENT A as arguement, then with CONTENT B as arguement and finally with CONTENT C. I should not login for each time the content needs to be changed.

Answer: 
What you need is the [Repeat Keyword](http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Repeat%20Keyword) from the [BuildIn](http://robotframework.org/robotframework/latest/libraries/BuiltIn.html) library.

> 
> Examples:
> 
> 
> 
> ```robot
> Repeat Keyword    5 times     Go Back         
> Repeat Keyword    ${var}  Some Keyword    arg1    arg2
> Repeat Keyword    2 minutes   Some Keyword    arg1    arg2
> 
> ```
> 
>
You can create another keyword like below

```
Execute Keyword Multiple Times
    [Arguments]    ${keyword_name}    @{params}
    FOR    ${i}    IN    @{params}
        Run Keyword    ${keyword_name}    ${i}
    END

```

and you can call it

```
Execute Keyword Multiple Times    KEYWORD 2    CONTENT A    CONTENT B ...

```

If You need to give more than one param you can use dict.

I suggest you another way: give to KEYWORD 2 n args and put a loop into it. The code will be more understandable.