Automated tests 如何在Robot框架中编写循环

Automated tests 如何在Robot框架中编写循环,automated-tests,robotframework,Automated Tests,Robotframework,我做了第一个简单的测试用例,我有一个问题 是否可以在Robot框架中编写循环 我想从地址和修改变量“I”的地址中检索值。我想一直执行,直到这样一个地址存在,因为它是表中的一行 ${f1} A ${f_temp} B While ${f1} != ${f_temp} or While element xpath=//${i} is visible \ ${F_temp} Get Text xpath=//${i} \ ${i}

我做了第一个简单的测试用例,我有一个问题

是否可以在Robot框架中编写循环

我想从地址和修改变量“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}

有什么想法吗?

机器人框架没有while循环。必须使用FOR循环和“exit FOR loop if”关键字才能退出。它将在有限的时间内运行,但如果您在范围内选择足够大的数字,它就足够接近实际用途

*** Test Cases ***
For Test
    FOR    ${i}    IN RANGE    999999
           Exit For Loop If    ${i} == 9
           Log    ${i}
    END
    Log    Exited

您可能正在寻找关键字,它使您能够对while循环进行类似的构造。对于有条件退出的循环,它比
更具可读性


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

如上所述,Robot不支持本机WHILE循环。 但是如果你坚持的话,这个可能会有帮助。

thx的答案。我有第二个问题。是否可以编写类似${i}2和${link}xpath=//div/div[${i}]/table的代码??在XPath的中间,不能将变量赋给另一个变量。RF返回一个错误,比如没有名为xpath=//div/div[${i}]/table的关键字……我认为您需要使用“Set Variable”关键字。试试这个:“${link}=Set变量xpath=//div/div[${i}]/table”如果这不起作用,请提出一个新问题。不,我不是。我和Pekka甚至在同一时间在同一个房间里。请注意,for循环有一种新的语法!感谢您对kuga的评论,我将代码更改为新语法。这会在等待关键字成功时在日志中生成大量不必要的错误,尤其是当循环多次迭代时,即使最终结果是通过的。如果要检查错误的变量很长,则日志文件会很大。