2016-01-28 50 views
3

我只想减少最后一行中的变量N_groups。 这是我的机器人文件:减少或增加机器人框架中的变量

Preconditions - Delete Groups But Not First 
    ${N_groups} Setup Groups Count Groups 
    Log to console N_groups: ${N_groups} 
    : FOR ${INDEX} IN RANGE 1 20 
    \ Run Keyword If '${N_groups}' == '1' Exit For Loop 
    \ Setup Groups Delete Group ${group} 
    \ ${N_groups}= ${N_groups}-1 

我得到的错误:

No keyword with name '${N_groups}-1' found.

我在做什么错在这里?

回答

7

试着把它放入var名称中。即

${N_groups-1} 
+2

这是不直观 – kame

+1

是的,我记得几个月前碰到同样的绊脚石,来自开发它只是感觉不对,就像我使用完全不同的变量而不是改变变量的值。但我猜的语法是语法 – shicky

+1

@ kame:它不直观,但它是一个记录的功能:http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#extended-variable-syntax –

0

如果变量已经是一个数,你可以使用:

${N_groups}= ${N_groups-1}

要做到这一点,你需要将其强制为数字(否则你会得到一个错误说failed: TypeError: coercing to Unicode: need string or buffer, int found ),例如

*** Variables *** ${N_groups}= ${0} # ${} notation coerces value to a number

或者,你可以使用Evaluate这样,其工作是否$ {N_groups}已强制转换为数字或不:

${N_groups}= Evaluate ${N_groups} - 1