Question: I have a list of variables

```
${Var1}=     Create List    item1    item2    item3

```

Now I need to loop through all the elements of the list, only on the particular condition I need to call a particular keyword for others, I will be calling another keyword. Even if the Test case fail in Keyword execution the test must continue

So When we have an item2, I need to call "Check Items". If due to some reason, when we call "Check Items", the keyword fails the *execution must NOT stop until all the items in the list are iterated*.For others, I will be calling the "Check node" keyword

```
*** Keywords ***
Check Items
    [Arguments]    ${F}
    Should be Equal     1      ${F}

Check node
    log    ${sample}

```

I checked with the `Run Keyword If` Keyword which will help in checking the condition, but the execution is stopping when the keyword fails.
With `Run Keyword And Ignore Error`with this, I am not able to check the condition.
Please help

Answer: 
I think that the keyword you are looking for is **Run Keyword And Continue On Failure** this will return fail if the condition is not satisfied, but the execution will continue.

Keyword **[Run Keyword And Ignore Error](https://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Run%20Keyword%20And%20Continue%20On%20Failure)** will always be passed, but it also returns the status. You could save this status in var and then evaluate it afterwards.
Something like this:

```
Set Test Variable    ${var}    ${2}
    ${output}=    Run Keyword And Ignore Error     Should Be Equal    ${var}    ${0}

```

In the output will be stored ('FAIL', '2 != 0')
What you need is template tests, [Templates with for loops](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#templates-with-for-loops) to be more accurate.
With template tests you could run the same test logic on different inputs. In this case all iterations will be independent from each other, so if the template fails for one input, the rest of the inputs will still be tested.

You can setup the list in the variable table our in a suite or test setup, it does not matter.

Here is a complete example, which will fail for `item1` and after that it still run and will be successful for the rest of the items in the list.

```
*** Variables ***
@{Var1}    item1    item2    item3    item4    item5

*** Test Cases ***
Test 1
    [Template]    Test Template
    FOR    ${element}    IN    @{Var1}
        ${element}
    END

*** Keywords ***
Test Template
    [Arguments]    ${item}
    Run Keyword If    '${item}' == 'item1'    Check Items    ${item}
    ...    ELSE    Check node

Check Items
    [Arguments]    ${F}
    Should be Equal     1      ${F}

Check node
    log    sample

```

Here is how the output look like. So all iterations will still be considered as one test case. If one iteration fails the test case will be marked as failed, but you can check all other iterations which will be executed in all cases.

[![enter image description here](https://i.stack.imgur.com/NYSoc.png)](https://i.stack.imgur.com/NYSoc.png)

For more read the [Test template](http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#test-templates) chapter of the User Guide.