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

使用Playwright连接WebSocket时遇ReferenceError错误求助

WebSocket连接报错:ReferenceError: WebSocket is not defined

错误原因

测试代码里直接使用了WebSocket.OPEN,但当前运行环境是Node.js(比如Jest测试环境),不存在浏览器全局的WebSocket对象。你的连接逻辑里用的是ws包提供的WebSocket实现,但测试代码没有导入这个模块,导致引用未定义。

解决方案

在测试代码中导入ws包的WebSocket,替换掉全局的WebSocket引用:

修改后的测试代码

import { WebSocket } from 'ws'; // 新增导入语句

test(`connection`, async () => {
  const url = endpoint.webSocketURL;
  const authToken = authorizationValue;
  try {
    const websocket = await connectToWebSocket(url, authToken);
    expect(websocket.readyState, "Verify Trade Streaming connection").toBe(WebSocket.OPEN);
    websocket.onmessage = (event) => {
      const data = event.data;
      console.log('Received message: ', data);
    };

  } catch (error) {
    console.error("WebSocket connection failed: ", error);
  }
});

额外说明

  • 确保项目已安装ws依赖:执行npm install ws --save(生产环境)或npm install ws --save-dev(仅测试环境)
  • 你的connectToWebSocket函数逻辑本身无问题,错误仅出现在测试代码的全局WebSocket引用上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:45:04