Jenkins运行Cypress指定--headed参数仍不弹出Chrome浏览器如何解决
Cypress Jenkins headed模式不显示浏览器窗口解决方案
根本原因
Jenkins默认以后台服务模式运行,进程所在的会话没有绑定可用的图形渲染环境,即使命令中添加了--headed参数,浏览器也找不到可输出的显示设备,只能静默运行。
各环境配置方案
Linux环境
- 首先确认Jenkins所在服务器已经安装了任意桌面环境(GNOME、KDE、Xfce均可)
- 你需要在执行Cypress命令前,先配置图形会话相关的环境变量,修改后的执行脚本如下:
# 指定当前活动图形会话的显示设备,默认值一般为:0 export DISPLAY=:0 # 允许Jenkins运行用户访问图形会话权限 xhost +local:root npx cypress run --browser chrome --headed --spec "cypress/integration/examples/actions.spec.js" --config pageLoadTimeout=10000
注意:必须先在服务器本地登录图形界面账号,保证对应图形会话处于激活状态,不要开启锁屏
- 如果使用Jenkins代理节点跑测试,不要以系统服务方式启动代理进程,需在图形会话中手动启动代理程序。
Windows环境
- 不要将Jenkins安装为Windows系统服务,系统服务默认运行在隔离的会话0中,无法弹出任何交互界面
- 改为登录Windows用户账号后,手动启动Jenkins主程序或者代理程序,保证Jenkins进程运行在当前已登录的用户会话中,即可正常弹出浏览器窗口。
额外校验项
- 确认运行Jenkins进程的用户和当前登录图形界面的用户一致,或者已经赋予了图形会话的访问权限
- 关闭系统的自动锁屏功能,锁屏后图形会话会被挂起,浏览器窗口无法正常渲染
内容的提问来源于stack exchange,提问作者user3637823
相关产品推荐
相关产品推荐

