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

如何在WSL2上顺利运行Puppeteer?遇连接超时错误求助

在WSL2上运行Puppeteer的简便解决方案

以下是针对你遇到的超时问题的具体解决步骤,均为WSL2环境下验证有效的方法:

  • 安装Chrome运行依赖
    WSL2的Linux发行版默认缺少Chrome/Chromium运行必需的系统库,这是启动超时的常见诱因。以Ubuntu/Debian为例,执行以下命令安装依赖:

    sudo apt update && sudo apt install -y libnss3 libatk-bridge2.0-0 libdrm-dev libxkbcommon-dev libgbm-dev libasound-dev libatspi2.0-0 libxshmfence-dev
    
  • 让Puppeteer自动管理Chrome实例
    不要手动指定executablePath,避免版本不兼容问题。确保安装Puppeteer时未跳过Chrome下载,执行以下命令重新安装:

    rm -rf node_modules package-lock.json
    npm install puppeteer
    

    安装过程中Puppeteer会自动下载匹配版本的Chrome(即你看到的r1022525),无需手动下载其他浏览器。

  • 添加适配WSL2的Chrome启动参数
    启动Puppeteer时必须添加无头环境的必要参数,示例代码如下:

    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch({
        headless: 'new', // 新版无头模式兼容性更强
        args: [
          '--no-sandbox',
          '--disable-setuid-sandbox',
          '--disable-dev-shm-usage', // 解决WSL共享内存不足导致的超时
          '--disable-gpu'
        ]
      });
      // 后续业务代码...
      await browser.close();
    })();
    

    其中--disable-dev-shm-usage是解决WSL2中Chrome因内存限制超时的关键参数。

  • 检查权限与网络状态

    • 确保当前用户对node_modules/puppeteer/.local-chromium目录有读写权限,若权限不足可执行:
      sudo chown -R $USER:$USER node_modules
      
    • 确认WSL2能正常访问外网,否则Puppeteer无法下载匹配的Chrome版本,可通过ping google.com测试网络连通性。
  • 验证版本匹配性
    进入node_modules/puppeteer/lib/cjs/puppeteer/revisions.js文件,确认chrome字段对应的版本确实是r1022525,同时检查node_modules/puppeteer/.local-chromium/linux-1022525目录是否存在且包含完整的Chrome二进制文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:46:17