Robot Framework求解Tosca Puzzle 73589时EOL语法错误解决方案咨询
报错产生原因
- 文本处理逻辑错误:通过
GET TEXT获取的id=array元素内容为每行存一个数字的带换行符字符串,你使用STRIP STRING时指定的字符集仅包含[,\'n,既无法匹配清除真实的换行符\n,也没有将长字符串拆分出单个数字,得到的${stripped}仍是带换行的完整长字符串。 - 循环对象使用错误:你已调用
CONVERT TO LIST生成了列表对象${converted},但实际循环时遍历的是未拆分的长字符串${stripped},导致循环变量${var}取到的是整个带换行的长串。 - 表达式语法错误:将带换行的长串传入
Run Keyword If的判断表达式时,字符串内部的换行符会被Python解析器判定为字符串提前结束,触发「EOL while scanning string literal」语法错误。
修复方案
调整文本拆分逻辑和循环对象即可解决问题:
- 移除错误的
STRIP STRING操作,改用Split To Lines关键字按换行拆分获取到的文本,直接得到单个数字组成的列表,可同时开启strip参数自动清除每行的首尾空白。 - 循环时直接遍历拆分后的数字列表,而非未处理的长字符串。
修改后的测试用例代码如下:
*** Settings *** Library Browser Library DateTime Library Collections Library String *** Variables *** @{VALUES} | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | *** Test Cases *** Example Test 73589 Browser.Open Browser https://obstaclecourse.tricentis.com/Obstacles/73589 ${rijmetgetallen}= GET TEXT id=array LOG TO CONSOLE ${rijmetgetallen} # 按行拆分文本得到单个数字列表,自动过滤每行首尾空白 ${num_list}= Split To Lines ${rijmetgetallen} strip=True FOR ${var} IN @{num_list} ${var}= Strip String ${var} Run Keyword If '${var}' == '1' Continue For Loop Click id=b1 LOG TO CONSOLE ${var} END Click id=button1 Click id=button2 Get Text xpath=//body *= You solved this automation problem.
内容的提问来源于stack exchange,提问作者LTL
相关产品推荐
相关产品推荐

