Robotframework 如何在robot框架中的FOR循环中使用if/else条件
这是我的代码:Robotframework 如何在robot框架中的FOR循环中使用if/else条件,robotframework,Robotframework,这是我的代码: :FOR ${a} IN RANGE 2 ${Row_Count} \ Run Keyword If '${temp}'== 'True' Click Link xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a and \ ... Screen validation for Answered ${STR_detail} and \ .
:FOR ${a} IN RANGE 2 ${Row_Count}
\ Run Keyword If '${temp}'== 'True' Click Link xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a and
\ ... Screen validation for Answered ${STR_detail} and
\ ... ELSE Continue For Loop
\ Run Keyword If ${a}>${Row_Count} Exit For Loop**
当if条件通过时(即if'${temp}'=='True'),我需要单击一个链接,但我得到一个错误
关键字'Selenium2Library.Click Link'应为1个参数,得到5个
我不知道该怎么办
有人能帮我吗?在robot framework中,用于将下一行的代码作为上一行的一部分继续 在您单击链接关键字后尝试的示例中,您添加了导致此错误的…,删除这些关键字,代码将开始运行。
click link关键字只接受一个参数作为定位器,在您的情况下,它会将以下行视为参数
:FOR ${a} IN RANGE 2 ${Row_Count}
\ Run Keyword If '${temp}'== 'True' Click Link
xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a
\ Screen validation for Answered ${STR_detail}
\ ELSE Continue For Loop
\ Run Keyword If ${a}>${Row_Count} Exit For Loop
编辑for循环的新语法
FOR ${a} IN RANGE 2 ${Row_Count}
Run Keyword If '${temp}'== 'True' Click Link
xpath=//table[@id='listAllSTR']/tbody/tr[${a}]/td[2]/a
Screen validation for Answered ${STR_detail}
ELSE Continue For Loop
Run Keyword If ${a}>${Row_Count} Exit For Loop
END
关于这个问题。 您正在if语句中执行多个关键字,因此,它将其他关键字作为第一个关键字的参数 解决方案 您可以创建自定义关键字并向其中添加其他关键字。在if语句中使用此自定义关键字。参见下面的示例
*** Keywords ***
Custom Keyword From If
[Documentation] Keywords documentation.
keyword1
keyword2
*** Test Cases ***
Test Custom Keyword
Run Keyword If '${a}'=='True' Custom Keyword From If
注意:
要执行多个关键字robot的关键字“运行关键字”,请参阅文档删除。。。从for循环内的第2行和第3行开始,这些都被计算为click link关键字的参数