2016-06-24 45 views
2

我使用最新的Robot Framework。 我需要根据参数的值为我的变量赋值。这是怎么会在JavaScript:Robot Framework:用if-else语句赋值变量

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

这是我尝试写在机器人框架:

${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到preprend它,但后来我的返回值被认为是它的参数,我得到Keyword 'BuiltIn.No Operation' expected 0 arguments, got 1.

我怎么能写呢?

回答

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})