Robot Framework中如何拆分字符串后提取子串以获取动态文本内的指定数字
报错原因
你遇到的报错是因为第三行赋值操作缺少关键字,Robot Framework会将每行第一个非赋值语法的内容识别为待执行的关键字,你直接写${refNumber} ${realNumber}[1]时,框架无法识别这是赋值操作,会把${realNumber}[1]当做关键字检索,因此抛出找不到关键字的错误。
方案1:修复原有拆分逻辑
如果要沿用Split String的思路,补全赋值关键字即可,正确写法如下:
# 先按no拆分字符串 @{realNumber} = Split String ${number} no # 用Set Variable关键字取拆分后的第二部分 ${temp_str} = Set Variable ${realNumber}[1] # 截取前10位数字(索引左闭右开,0到9对应前10个字符) ${refNumber} = Get Substring ${temp_str} 0 9 Log To Console ${refNumber}
方案2:更适配动态文本的正则提取法
对于内容不固定的文本,用正则匹配的兼容性更强,只要目标数字的特征是紧跟在no之后的连续数字,就能精准提取,不受前后文本变化影响:
- 首先确认你已经导入了String库:在测试用例文件的
*** Settings ***区块添加Library String - 提取代码如下:
# 匹配no之后的连续数字,取第一个捕获组的结果 ${match_list} = Get Regexp Matches ${number} no(\\d+) 1 # 取匹配到的第一个结果即为目标数字 ${refNumber} = Set Variable ${match_list}[0] Log To Console ${refNumber}
内容的提问来源于stack exchange,提问作者Rashmi S
相关产品推荐
相关产品推荐

