I need to create a nested loop in Robot framework. Can you please Help me do it?
${contents}= Get File ${file path}
@{lines}= Split to lines ${
Nested for loops
Having nested for loops is not supported directly, but it is possible to use a user keyword inside a for loop and have another for loop there.
*** Keywords ***
Handle Table
[Arguments] @{table}
:FOR ${row} IN @{table}
\ Handle Row @{row}
Handle Row
[Arguments] @{row}
:FOR ${cell} IN @{row}
\ Handle Cell ${cell}
Referenced from : http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#nested-for-loops
It isn't possible without custom keyword containing the inner loop. See doc: http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#nested-for-loops
I'd say that such logic should be always written using some stronger language (python, java...) and then just called from RF.
No nested loops in RF; that can be done only by calling a keyword with the inner loop, in the outer one.
In your particular case though, you could go without it - as you want to match the full line, that's doable through Should Contain:
${contents}= Get File ${file path}
@{lines}= Split to lines ${contents}
${matched elements}= Get Webelements ${LABEL PORTAIL XPATH }
: FOR ${element} IN @{matched elements}
\ ${text}= Get Text ${element}
\ ${present}= Run Keyword And Return Status Should Contain ${lines}
${text}
\ Run Keyword If ${present} Log '${text} matched'
If you were going after a partial match - i.e. ${text}
to be a part of a ${lines}
member, then it wouldn't be possible like this.