在Python / RobotFramework中将@和$用于动态元素/变量的位置。@ {cookies}和$ {cookies}示例

Gur*_*der 2 python robotframework

我没有任何问题,但尝试了解在何处使用@ {any_variable}和$ {any_variable}“ @”和“ $”的区别

:FOR    ${partner}    IN    @{partners_name}
      Set test variable   ${partner}
Run Code Online (Sandbox Code Playgroud)

我没有任何错误,只是想了解在哪里使用@和$或@和$之间的区别。

Tod*_*kov 5

$前缀表示“使用该变量的值”; @是“扩展容器的内容(通常是列表,但这不是唯一的选择),并使用该组值”。

例如:

${a list}=    Create List    a    b    c
Run Code Online (Sandbox Code Playgroud)

使用时

FOR    ${value}    IN    @{a list}
Run Code Online (Sandbox Code Playgroud)

,由RF评估为

FOR    ${value}    IN    a     b    c
Run Code Online (Sandbox Code Playgroud)

,这是正确的for循环语法。


但同时:

FOR    ${value}    IN    ${a list}
Run Code Online (Sandbox Code Playgroud)

,由RF评估为

FOR    ${value}    IN    ['a', 'b', 'c']   # this is a string, not an actual python list
Run Code Online (Sandbox Code Playgroud)

,对于RF在语法上是错误的。


通常,当您要传递“列表成员,每个成员分开”时,请使用@。当您需要传递列表变量本身时,请使用$

这是一个简化,但涵盖了主要用例。