RobotFramework使用Browser库执行Playwright操作报无打开页面错误
问题根因
你遇到的报错核心是测试用例的语法结构错误,Robot Framework 把你写的 [Arguments] ${Date} 识别成了一个独立的新测试用例,这个新用例执行时没有打开任何页面,所以调用页面操作关键词就报错了。
具体错误点说明
在RF的语法规则里:
- 测试用例表下,所有没有缩进的行都会被识别为测试用例名称
[Arguments]属于测试用例/用户关键词的配置项,必须紧跟在测试用例名称的下一行、且带缩进,不能放在测试用例步骤的中间位置
你现有代码的结构被RF解析成了两个测试用例:
- 第一个测试用例叫
Find the future christmasday,执行完Sleep 3s就结束了,结束时Browser库会自动关闭打开的页面 - 第二个测试用例叫
[Arguments] 2023-12-25 00:00:00.000000,执行时没有任何打开页面的步骤,所以调用Click、Fill Text等操作直接报错
排查思路
- 先看执行日志里的用例数量:你原本只写了1个用例,但日志里显示执行了两个用例,一个PASS一个FAIL,直接说明解析出了多余用例
- 检查测试用例的缩进和配置项位置:RF对缩进敏感,所有用例步骤、配置项都必须缩进,配置项必须放在用例的最开头位置
- 检查关键词拼写:RF关键词大小写敏感,全小写的
sleep会被识别为无效关键词
解决方案
修正测试用例的结构,把参数声明移到测试用例开头,同时修正关键词拼写,修正后的代码示例:
*** Settings *** Library Browser enable_presenter_mode=True Library XML Library Collections Library String Library DateTime Documentation FUTURE CHRISTMAS *** Variables *** ${Date}= 2023-12-25 00:00:00.000000 *** Test Cases *** Find the future christmasday [Arguments] ${Date}=${Date} Open Browser https://obstaclecourse.tricentis.com/Obstacles/21269 Sleep 3s ${Day}= Convert Date ${Date} result_format=%A Click id=christmasday Fill Text id=christmasday ${Day} Sleep 2s
内容的提问来源于stack exchange,提问作者LTL
相关产品推荐
相关产品推荐

