下面提到的脚本已在旧python(2.7.x)和Robotframework版本中使用。将python版本从2.7升级到3.7.2,并将机器人版本升级到3.1.1之后,相同的代码无法正常工作。
执行脚本时出现此错误:
变量“ $ {var}”是字符串,不是列表或字典,因此无法从其中访问项目“ $ {var}”。
代码:
${loc} xpath=(//*[contains(@class,"c3-legend-item ")])
: FOR ${row} IN RANGE 1 ${Count}
\ ${Exp_Name} = Get Text ${loc}[${row}]
\ Log ${Exp_Name}
Run Code Online (Sandbox Code Playgroud)
在机械手3.1版中,存在向后不兼容的更改。从发行说明中:
$ {var} [xxx]之类的变量后的方括号被视为项目访问权限
像$ {var} [xxx]这样的语法现在被认为是变量项访问(#2601),而不是变量$ {var}后跟文字字符串[xxx]。如果需要后者,则需要像$ {var} [xxx]这样转义。
在特定情况下,你使用${loc}[${row}],你意料中[${row}]追加到${loc}。在3.1中,机器人认为[${row}]是的索引${loc}。
如发行说明中所建议,此修复程序是为了逃避方括号:
\ ${Exp_Name} = Get Text ${loc}\[${row}]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |