Mengurangi atau menambah variabel dalam kerangka robot

Saya hanya ingin mengurangi variabel N_groups di baris terakhir. Ini file robot saya:

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

Saya mendapatkan kesalahan:

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

Apa yang saya lakukan salah di sini?


person kame    schedule 28.01.2016    source sumber


Jawaban (3)


Coba letakkan di dalam nama var. yaitu

${N_groups-1}
person shicky    schedule 28.01.2016
comment
ini tidak intuitif - person kame; 28.01.2016
comment
ya, saya ingat mengalami batu sandungan yang persis sama beberapa bulan yang lalu, berasal dari pengembangan rasanya salah, seperti saya menggunakan variabel yang sama sekali berbeda daripada mengubah nilai variabel. Tapi saya kira sintaksis adalah sintaksis - person shicky; 28.01.2016
comment
@kame: ini tidak intuitif, tetapi merupakan fitur yang terdokumentasi: robotframework.org /robotframework/terbaru/ - person Bryan Oakley; 28.01.2016

Jika variabelnya sudah berupa angka, Anda dapat menggunakan:

${N_groups}= ${N_groups-1}

Untuk melakukan ini, Anda perlu memaksakannya ke nomor (jika tidak, Anda akan mendapatkan pesan kesalahan yang mengatakan failed: TypeError: coercing to Unicode: need string or buffer, int found), mis.

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

Alternatifnya, Anda dapat menggunakan Evaluate seperti ini, yang berfungsi baik ${N_groups} telah dipaksa ke suatu angka atau tidak:

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

person qbert220    schedule 07.06.2017

Coba ini:

${decrement_counter}=  set variable   1

-- di dalam lingkaran

${N_groups}=   Evaluate    ${N_groups} - ${decrement_counter}

Catatan - hanya satu spasi sebelum dan sesudah tanda pengurangan.

person Ashok Kakade    schedule 09.02.2021