我使用最新的Robot Framework。 我需要根据参数的值为我的变量赋值。这就是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.
我怎么写呢?
答案 0 :(得分:4)
由于您正在调用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})