基于Appian的Cucumber自动化测试突发ChromeDriver WebSocket连接失败
Appian自动化测试框架ChromeDriver WebSocket连接失败(403 Forbidden)解决方案
核心问题分析
从日志来看,ChromeDriver启动成功但WebSocket连接被拒绝(403状态码),这是ChromeDriver与浏览器版本不兼容、安全策略拦截或框架配置缺失引发的协议层问题。
解决步骤
1. 严格匹配Chrome与ChromeDriver版本
别只确认ChromeDriver已更新,必须保证Chrome浏览器和ChromeDriver的大版本完全一致。比如Chrome是112.x,ChromeDriver也得是112.x,小版本差异可能触发W3C协议兼容问题。
- 查看Chrome版本:打开
chrome://version/ - 查看ChromeDriver版本:终端运行
chromedriver --version - 版本不匹配就下载对应版本的ChromeDriver替换现有文件
2. 给ChromeDriver添加启动参数绕过权限限制
由于你无法修改框架的CucumberBaseFixture,试试通过框架的配置文件添加Chrome启动参数:
- 推荐测试环境使用的参数组合:
# 若框架使用cucumber.properties配置浏览器参数 browser.chrome.args=--remote-allow-origins=*,--no-sandbox--remote-allow-origins=*:解决跨域WebSocket连接限制--no-sandbox:避免企业安全软件拦截沙箱内的连接
- 如果框架有自定义配置界面,直接将这些参数填入Chrome启动参数栏即可
3. 排查企业安全软件拦截
403错误大概率是公司安全工具拦截导致:
- 临时关闭测试机上的EDR、防火墙软件,重新运行测试验证
- 禁用Chrome所有第三方扩展(尤其是安全类),再尝试执行测试
- 确认本地防火墙允许localhost的随机端口(50000+)进行双向连接
4. 清空Chrome用户数据缓存
Chrome的配置文件损坏可能引发WebSocket连接异常:
- 找到Chrome用户数据目录:Windows默认路径为
C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data - 将该目录重命名为
User Data Backup,让Chrome生成全新的干净配置文件 - 重新运行测试
5. 更新Appian自动化框架jar包
框架可能未适配新版ChromeDriver:
- 检查内部仓库是否有最新版的Appian自动化框架jar包,替换旧版本
- 查询框架内部文档,确认是否有针对Chrome 110+版本的适配说明
错误信息备查
org.openqa.selenium.remote.http.ConnectionFailedException: Unable to establish websocket connection to http://localhost:50576/devtools/browser/12acb1c1-5b1c-46c2-7501-a8958019eb0f
关联日志:
ChromeDriver was started successfully. Mar 13, 2023 4:22:09 PM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: W3C Mar 13, 2023 4:22:09 PM org.openqa.selenium.remote.http.WebSocket$Listener onError WARNING: Invalid Status code=403 text=Forbidden
内容的提问来源于stack exchange,提问作者jesric1029
相关产品推荐
相关产品推荐

