Tom is correct. Keywords with a loop that contain a keyword to
another loop.
Here is a basic example that I wrote. I needed a way to add records
in our app up to 5 levels deep and control how many records are added
on each level.
Loop 1 add a records
Loop 2 add b records to a
Loop 3 add c records to b
Loop 4 add d records to c
Loop 5 add e records to d
*** Test Cases ***
NestedLoopExample
comment LOOP TIMES
${LoopCount} Set Variable 1
comment LEVEL 1
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop
comment LEVEL 2
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop2 ${var2}
comment LEVEL 3
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop3 ${var2}
comment LEVEL 4
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop4 ${var2}
comment LEVEL 5
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop5 ${var2}
*** Keywords ***
kLoop
ClickElement xpath=//*[@id="NewBtn"]
kSave
kLoop2
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kSave
kLoop3
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop31 ${var3}
kLoop31
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kSave
kLoop4
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ ${var3}= Set Variable ${Arg1} ${var2}
\ kLoop41 ${var3}
kLoop41
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop42 ${var3}
kLoop42
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kSave
kLoop5
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ ${var3}= Set Variable ${Arg1} ${var2}
\ kLoop51 ${var3}
kLoop51
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ ${var3}= Set Variable ${Arg1} ${var2}
\ kLoop52 ${var3}
kLoop52
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kLoop53 ${var3}
kLoop53
[Arguments] ${Arg1}
: FOR ${var} IN RANGE 0 ${LoopCount}
\ ${var2}= Evaluate ${var} + 1
\ kSave
kSave
WaitUntilPageContainsElement xpath=//*[@id="SaveBtn"]
Focus xpath=//*[@id="SaveBtn"]
SetSeleniumSpeed 1 seconds
PressKeyNative 9
ClickElement xpath=//*[@id="SaveBtn"]
SetSeleniumSpeed 0 seconds