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

在Puppeteer中加载uBlock Origin失败的问题求助

Puppeteer加载uBlock Origin扩展失败问题排查与解决

问题描述

希望在Puppeteer中使用uBlock Origin扩展,但启动Chromium/Chrome后,浏览器无法识别manifest.json路径,手动加载也无效。已执行步骤:

  1. git克隆uBlock项目
  2. 使用以下代码加载扩展:
const extensionPath = path.resolve("./uBlock/platform/chromium");//path leads to a manifest.json
const browser = await puppeteer.launch({ 
    headless: false,
    args: [
        '--start-maximized',
        `--load-extension=${extensionPath}`, // Load uBlock Origin extension
    ]
});
  1. 访问已知广告网站仍能看到广告内容

解决方案

  • 必须先构建uBlock扩展:直接克隆的源码是未编译的开发文件,platform/chromium目录仅为模板,不包含完整可加载资源。进入uBlock项目根目录,执行以下命令完成构建:

    npm install
    npm run build:chromium
    

    构建完成后,成品扩展会生成在dist/build/uBlock0.chromium目录下,后续加载需使用此路径。

  • 修正扩展路径:将代码中的extensionPath改为构建后的成品目录,示例:

    const extensionPath = path.resolve("./uBlock/dist/build/uBlock0.chromium");
    
  • 手动加载验证方法:手动加载时,进入浏览器“扩展管理”->“加载已解压的扩展程序”,选中构建后的uBlock0.chromium目录(而非源码里的platform/chromium),确认扩展是否能正常启用。

  • 优化Puppeteer启动参数:添加--disable-extensions-except参数,确保仅加载指定扩展,避免冲突:

    const browser = await puppeteer.launch({ 
        headless: false,
        args: [
            '--start-maximized',
            `--disable-extensions-except=${extensionPath}`,
            `--load-extension=${extensionPath}`,
        ]
    });
    
  • 注意headless模式限制:若后续需使用headless模式,必须设置headless: "new",旧版headless模式不支持加载扩展。


内容的提问来源于stack exchange,提问作者I try so hard but I cry harder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:02:40