使用RobotFramework解决Tosca puzzle 94441出现SelectAttribute转换错误问题
报错根因
你调用RobotFramework Browser库的Select Options By关键字时参数顺序填写错误,该关键字的官方入参顺序为:
- 下拉框元素定位器
- 选项匹配规则(仅支持
index/label/text/value四个取值) - 待选中的选项值(可传多个)
你把匹配规则value放在了第一个参数位,把下拉框定位器放在了第二个参数位,导致库误将定位器识别为匹配规则,抛出找不到对应属性的错误。
另外你当前脚本还遗漏了场景要求的「点击按钮直至名称变更」的核心逻辑,仅操作下拉框无法完成puzzle。
修正后可运行的完整脚本
*** Settings *** Library Browser Library String *** Variables *** @{TARGET_OPTIONS} Functional End2End GUI testing Exploratory Testing *** Test Cases *** Solve Tosca Puzzle 94441 # 打开目标页面 New Page https://obstaclecourse.tricentis.com/Obstacles/94441 # 等待下拉框加载完成 Wait For Elements State select[id='multiselect'] visible # 正确调用选中多选下拉选项 Select Options By select[id='multiselect'] text @{TARGET_OPTIONS} # 循环点击按钮直到按钮文本变更 WHILE True ${current_btn_text} Get Text //button IF "${current_btn_text}" != "Click me as long as I have this name" BREAK END Click //button Sleep 0.2s END # 验证通关成功 Text Should Be Visible You solved this automation problem. # 关闭浏览器 Close Browser
调整说明
- 修正了
Select Options By的参数顺序,同时改用text规则匹配选项(该下拉框的value和显示文本一致,用text规则兼容性更强) - 补充了循环点击按钮的逻辑,判断按钮文本变化后停止点击
- 优化了变量命名和页面加载等待逻辑,提升脚本稳定性
- 替换了旧的
OPEN BROWSER用法,改用Browser库推荐的New Page写法,断言改用更直观的Text Should Be Visible关键字
内容的提问来源于stack exchange,提问作者LTL
相关产品推荐
相关产品推荐

