Префикс $
означает «использовать значение этой переменной»;@
- это «развернуть содержимое контейнера (обычно это список, но это не единственный вариант) и использовать этот набор значений».
Например:
${a list}= Create List a b c
При использовании
FOR ${value} IN @{a list}
оценивается RF как
FOR ${value} IN a b c
, что является правильным синтаксисом цикла for.
Но в то же время:
FOR ${value} IN ${a list}
, оценивается RF как
FOR ${value} IN ['a', 'b', 'c'] # this is a string, not an actual python list
, что синтаксически неверно для RF.
В общем, когда вы хотите передать «список членов, каждый из которых отдельно» - используйте @
. Когда вам нужно передать саму переменную списка - используйте $
.
Это упрощение, но оно охватывает основной вариант использования.