如何在机器人框架中编写循环

gra*_*lvo 8 automated-tests robotframework

我做了我的第一个简单的测试用例,我有一个问题.在RF中可以写入循环吗?我想从地址和修改后的变量"i"的地址中检索值.我想执行直到存在这样的地址,因为它是表中的一行.

${f1}       A
${f_temp}   B

While   ${f1} != ${f_temp}
or
While element xpath=//${i} is visible


\  ${F_temp}                Get Text     xpath=//${i}
\  ${i}                     ${i}+1
\  Run Keyword And Continue On Failure   Should be equal  ${f_temp}  ${f1}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 17

Robot Framework没有while循环.您必须使用FOR循环和"exit for loop if"关键字退出.它将运行一段有限的时间,但如果你在范围内选择足够大的数字,它就足够接近实际用途.

*** Test Cases ***
For Test
    :FOR    ${i}    IN RANGE    999999
    \    Exit For Loop If    ${i} == 9
    \    Log    ${i}
    Log    Exited
Run Code Online (Sandbox Code Playgroud)


小智 5

您可能正在寻找Wait Until Keyword Succeeds关键字,它使您能够执行与 while 循环类似的构造。FOR它比有条件退出的循环更具可读性。

然后,您使用自定义关键字,当您需要结束“循环”时,该关键字会失败。