2016-06-24 68 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})