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

在NestJS中使用Playwright打开网站时出现ERR_HTTP2_PROTOCOL_ERROR错误

解决Playwright中net::ERR_HTTP2_PROTOCOL_ERROR的方案

以下是针对你遇到的问题的几种可行解决方法:

  • 强制禁用HTTP/2协议
    部分服务器与Playwright默认的HTTP/2实现存在兼容性问题,直接关闭HTTP/2通常能解决这类错误。可以通过两种方式设置:

    // 方式1:启动浏览器时添加禁用参数
    const browser = await chromium.launch({
      headless: false,
      args: [
        '--disable-web-security',
        '--disable-http2' // 新增禁用HTTP/2的参数
      ],
    });
    
    // 方式2:创建上下文时配置HTTP协议
    const browser = await chromium.launch({ headless: false });
    const context = await browser.newContext({
      http2: false, // 强制关闭HTTP/2
      ignoreHTTPSErrors: true // 若目标站点有证书问题可一并添加
    });
    const page = await context.newPage();
    await page.goto('https://example.com');
    
  • 模拟真实浏览器的User-Agent
    部分服务器会对非标准UA的请求返回异常,设置一个主流浏览器的UA字符串:

    const page = await browser.newPage({
      userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'
    });
    
  • 调整页面加载的超时与等待策略
    错误可能因加载超时引发,延长超时时间并设置更合理的等待条件:

    await page.goto('https://example.com', {
      timeout: 60000, // 设置60秒超时
      waitUntil: 'networkidle' // 等待网络空闲后确认加载完成
    });
    
  • 检查浏览器版本兼容性
    Playwright 1.36.2对应的Chrome版本可能与目标服务器的HTTP/2实现不匹配,可尝试升级Playwright到最新稳定版,或指定兼容的浏览器版本:

    # 终端执行:安装指定版本的Chromium
    npx playwright install chromium@115.0.5790.170
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 23:03:26