Robot Framework使用Evaluate遍历列表报EOL扫描字符串字面量错误如何解决
报错原因
- 核心是
Evaluate关键字的使用方式错误:你直接将带双引号的列表元素通过${变量}插值到表达式中,元素内部的双引号会被Python解析器识别为字符串边界,导致字符串提前截断,触发扫描字符串字面值时遇到行尾的语法错误。 - 额外存在变量名不一致问题:你定义的预期列表变量名为
expected_dataItem,但循环中使用的是${expectedValues_str},变量名不匹配也会导致取值失败。
最优解决方案
推荐直接使用Robot Framework原生列表操作关键字Get From List,完全规避Evaluate的语法坑,是操作列表元素的标准实现:
${length} Get Length ${expected_dataItem} FOR ${index} IN RANGE ${length} ${expectedValue} Get From List ${expected_dataItem} ${index} List Should Contain Value ${container} ${expectedValue} END
备选方案(必须用Evaluate的场景)
如果一定要通过Evaluate取值,不要直接插值变量,使用$变量名的语法将Robot变量直接传入Python执行上下文,避免引号冲突:
${length} Get Length ${expected_dataItem} FOR ${index} IN RANGE ${length} ${expectedValue} Evaluate $expected_dataItem[int($index)] List Should Contain Value ${container} ${expectedValue} END
内容的提问来源于stack exchange,提问作者Ramya
相关产品推荐
相关产品推荐

