首页 > 解决方案 > 如何在 puppeteer 中加载扩展之前运行设置代码?

问题描述

我正在使用 puppeteer 测试 chrome 扩展的行为。安装后,扩展程序会打开一个页面。我想在加载扩展之前在浏览器中进行初始设置(例如,设置本地存储或注入一个笑话模拟)。

我现在遇到的问题是扩展程序在浏览器启动时加载,所以我不知道在加载扩展程序之前执行设置代码的任何方法。

这是我当前加载扩展的方式(位于dist/chrome文件夹中):

  const browser = await puppeteer.launch({
    args: [
      '--disable-extensions-except=dist/chrome',
      '--load-extension=dist/chrome',
    ],
    headless: false,
    ignoreDefaultArgs: ['--disable-extensions'],
  });

如何在加载扩展之前进行初始设置?

我能想到的一些选项是:1)在浏览器启动加载扩展2)在扩展初始化之前拦截扩展安装并执行设置代码

标签: google-chrome-extensionpuppeteer

解决方案


我来寻找答案,发现它正在阅读您的问题,所以我将其留在这里,以防将来必须再次搜索...

诀窍是在运行实际扩展之前创建一个“启动器”扩展,其唯一目的是运行设置代码。它看起来像:

      '--disable-extensions-except=dist/launcher,dist/chrome',
      '--load-extension=dist/launcher,dist/chrome',

推荐阅读