web-dev-qa-db-ja.com

ロボットフレームワークの変数をデクリメントまたはインクリメントします

最後の行の変数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
kame

Var名の中に入れてみてください。つまり.

${N_groups-1}
12
shicky

変数がすでに数値である場合は、次を使用できます。

${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

5
qbert220