Robotframework 如何在选取随机数后使用if-else语句

Robotframework 如何在选取随机数后使用if-else语句,robotframework,Robotframework,我可以从列表中选择一个随机数,但现在我不知道如何使用if-else语句,以便它与条件匹配,从而获得该数字的更多详细信息 我试着用“runkeywordif”命令来做,但对我来说没有效果。也尝试过使用“For循环”,但效果并不理想 *** Variables *** @{PARTY} ABC XYZ RTY DOG *** Test Cases *** View all Details ${value} = Evaluate random.choice($PARTY) ra

我可以从列表中选择一个随机数,但现在我不知道如何使用if-else语句,以便它与条件匹配,从而获得该数字的更多详细信息

我试着用“runkeywordif”命令来做,但对我来说没有效果。也尝试过使用“For循环”,但效果并不理想

*** Variables ***
@{PARTY}  ABC  XYZ  RTY  DOG

*** Test Cases ***
View all Details
    ${value} =  Evaluate  random.choice($PARTY)  random
    input text  ${SEARCH_BAR}  ${value}
    log to console  \nvalue: ${value}
    click element  ${SEARCH_BUTTON}
    :for  ${ELEMENT}  IN  @{PARTY}
    \ log  ${ELEMENT}
    \ run keyword if  '@{ELEMENT}' == 'ABC'
    \ ...  else if  '@{ELEMENT}' == 'XYZ'
    \ ...  else if  '@{ELEMENT}' == 'RTY'
    \ ...  else  '@{ELEMENT}' == 'DOG'
预期结果:现在,当随机值被选取时,应该将该值与列表进行比较,当条件为真时,我应该能够单击该元素以获得该方的进一步详细信息


实际结果:随机值被拾取&FOR循环不包含关键字。

您有几个问题

  • 使用列表变量
    @{ELEMENT
    进行比较,而不是使用标量元素
  • runkeywordif
    语句中,如果条件为true,则没有要运行的关键字。对于
    ELSE If
    行也是如此
  • else if
    应大写,因为它是保留关键字
  • ELSE
    完全不需要条件,它处理所有以前条件未处理的情况
  • 您可以随机选择一个
    ${value}
    ,但不使用它。在列表上迭代将为您提供每个条件
    true
    一次
  • 如果要使用随机值,则根本不需要for循环。代码应如下所示:

    View all Details
        ${ELEMENT} =  Evaluate  random.choice($PARTY)  random
        log  ${ELEMENT}
        Run Keyword If  '${ELEMENT}' == 'ABC'   Your Keyword One Here
        ...  ELSE IF  '${ELEMENT}' == 'XYZ'   Your Keyword Two Here
        ...  ELSE IF  '${ELEMENT}' == 'RTY'  Your Keyword Three Here
        ...  ELSE    Your Keyword Four Here
    

    谢谢…尝试查看您的代码,但被卡住了。在选择随机值后,它将与ELSE关键字进行比较,而不是与ELSE IF进行比较。另一件事是在比较了如何使用“单击元素”之后命令`Search Party By Name`FAIL`未找到名为“XYZ”==“DOG”的关键字。如果不看到代码,就无法说出任何内容。