You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Karate UI脚本握手失败求助:WebSocket握手返回403 Forbidden

Karate UI Chrome驱动WebSocket握手403 Forbidden问题解决

问题重现

Feature文件代码

Background
configure cors = true
configure driver = {type: 'chrome', executable: 'chrome', addOptions: '\[*--remote-allow-origins=*\]}
Scenario: User goes to Angular
Given driver 'https://angular.io'
And fullscreen()
Then assert locate('.nav-link.home').exists

错误信息

org.opentest4j.AssertionFailedError: driver config / start failed: io.netty.handler.codec.http.websocketx.WebSocketClientHandshakeException: Invalid handshake response getStatus: 403 Forbidden, options: {type=chrome, target=null}
classpath:features/testing.feature:8
       at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:38)
       at org.junit.jupiter.api.Assertions.fail(Assertions.java:135)
       at com.intuit.karate.junit5.FeatureNode.lambda$next$1(FeatureNode.java:86)

解决方案

1. 修正驱动配置的语法错误

原配置中addOptions的写法存在转义字符和语法错误,导致Chrome启动参数未被正确解析,这是引发握手失败的核心原因之一。修正后的配置如下:

configure driver = {type: 'chrome', executable: 'chrome', addOptions: ['--remote-allow-origins=*']}
  • 移除多余的转义符\,使用标准数组格式传递启动参数
  • 确保引号、括号配对正确

2. 确保Chrome浏览器与ChromeDriver版本匹配

Karate会自动下载对应版本的ChromeDriver,但本地存在不兼容驱动时,会导致WebSocket通信异常:

  • 查看Chrome浏览器版本(访问chrome://version/)
  • 确认Karate下载的ChromeDriver版本与浏览器主版本号完全一致
  • 若版本不匹配,手动下载对应版本的ChromeDriver并指定路径,或清理Karate缓存的驱动文件

3. 添加额外的Chrome启动参数(按需使用)

针对测试环境的安全限制,可添加以下参数放宽Chrome安全策略:

configure driver = {type: 'chrome', executable: 'chrome', addOptions: ['--remote-allow-origins=*', '--no-sandbox', '--disable-dev-shm-usage', '--disable-web-security']}
  • --no-sandbox:禁用沙箱模式,解决部分环境下的权限问题
  • --disable-dev-shm-usage:避免Docker或低内存环境下的资源不足问题
  • --disable-web-security:放宽跨域安全限制(仅用于测试环境)

4. 排查网络与代理问题

如果测试环境使用代理,可能会拦截WebSocket握手请求导致403:

  • 检查代理是否允许ws/wss协议请求
  • 在Chrome启动参数中添加代理配置,例如:--proxy-server=http://your-proxy:port
  • 若无需代理,添加--no-proxy-server参数跳过代理

内容的提问来源于stack exchange,提问作者Brandon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 02:30:20