【问题标题】:Robot Framework: assign variable with if-else statementRobot Framework:使用 if-else 语句分配变量
【发布时间】:2016-06-24 20:39:26
【问题描述】:

我使用最新的机器人框架。 我需要根据参数的值为我的变量分配一个值。这就是它在 JavaScript 中的样子:

ITEM_SELECTOR = RECENT_ITEM_SELECTOR + (
    position === 'last' ? ':last-child' : ':nth-child' + '(' + position + ')'
)

这就是我尝试在 Robot Framework 中编写它的方式:

${ITEM_SELECTOR} =    Run Keyword If    ${position} == 'last'    ${RECENT_ITEM_SELECTOR}:last-child
...    ELSE    ${RECENT_ITEM_SELECTOR}:nth-child(${position})

但这种方式${RECENT_ITEM_SELECTOR}:nth-child(${position}) 被视为关键字,而不是分配给ITEM_SELECTOR

然后我尝试用No Operation 预先设置它,但是我的返回值被认为是它的参数,我得到Keyword 'BuiltIn.No Operation' expected 0 arguments, got 1.

我该怎么写?

【问题讨论】:

    标签: integration-testing robotframework


    【解决方案1】:

    既然你调用run keyword if,你必须给它一个关键字才能运行。您可以使用set variable 使您的代码正常工作:

    ${ITEM_SELECTOR} =    Run Keyword If    ${position} == 'last'
    ...  Set variable    ${RECENT_ITEM_SELECTOR}:last-child
    ...  ELSE    
    ...  Set variable    ${RECENT_ITEM_SELECTOR}:nth-child(${position})    
    

    但是,您也可以使用set variable if 来获得更紧凑和可读的解决方案:

    ${ITEM_SELECTOR} =    Set variable if    ${position} == 'last'
    ...  ${RECENT_ITEM_SELECTOR}:last-child
    ...  ${RECENT_ITEM_SELECTOR}:nth-child(${position})
    

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 2021-12-17
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 2017-10-27
      相关资源
      最近更新 更多