RobotFramework使用Playwright Browser库连接失败与启动超时问题
问题根因
你升级Node版本并重新执行rfbrowser init后,最初的「无法连接playwright进程」问题已经解决,当前的启动超时问题核心错误为Missing X server or $DISPLAY:
你是在WSL(Windows Subsystem for Linux)环境下运行测试,Linux子系统默认没有配置图形显示服务,导致Chromium浏览器启动时找不到显示出口,卡住直到触发30s超时。
解决方案
方案1:使用无头模式运行(推荐,适配绝大多数自动化测试场景)
无需额外配置图形服务,直接在测试逻辑中指定无头启动参数即可:
- 单用例配置:调用
New Page关键字时增加参数:New Page headless=${True} - 全局配置:在测试套件的变量段新增配置:
${BROWSER_ARGS} --headless=new
方案2:使用有头模式运行(可直观看到浏览器操作界面)
需要配置Windows侧的X显示服务,操作步骤如下:
- Windows侧安装VcXsrv,启动时勾选「Disable access control」选项,同时在系统防火墙中放行VcXsrv的公网、私网访问权限
- 在WSL终端执行命令配置DISPLAY环境变量:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0.0 - 验证配置是否生效:在WSL终端执行
xeyes,如果Windows侧弹出带眼睛的小窗口则配置成功 - 重新运行robot测试即可正常启动有头浏览器
额外排查项
如果完成上述操作后仍有问题,可尝试以下操作:
- 杀掉残留的playwright进程后重试:
pkill -f "playwright" - 手动延长浏览器启动超时时间:
New Browser chromium timeout=60000 - 直接在WSL终端执行报错日志中的Chromium启动命令,排查是否有其他明确的错误提示
内容的提问来源于stack exchange,提问作者robot
相关产品推荐
相关产品推荐

