You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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」语法错误。
修复方案

调整文本拆分逻辑和循环对象即可解决问题:

  1. 移除错误的STRIP STRING操作,改用Split To Lines关键字按换行拆分获取到的文本,直接得到单个数字组成的列表,可同时开启strip参数自动清除每行的首尾空白。
  2. 循环时直接遍历拆分后的数字列表,而非未处理的长字符串。

修改后的测试用例代码如下:

*** 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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:27:01