google-chrome-extension - 如何在 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)在扩展初始化之前拦截扩展安装并执行设置代码
解决方案
我来寻找答案,发现它正在阅读您的问题,所以我将其留在这里,以防将来必须再次搜索...
诀窍是在运行实际扩展之前创建一个“启动器”扩展,其唯一目的是运行设置代码。它看起来像:
'--disable-extensions-except=dist/launcher,dist/chrome',
'--load-extension=dist/launcher,dist/chrome',
推荐阅读
- ios - 获取数组中字典的值
- arrays - 如果所有元素都等于某个值,则从 numpy 数组中删除行/列
- android - 为什么我的 Android 应用程序类占用这么多空间
- google-cloud-platform - 在 GCP 上使用基于存储桶的负载均衡器时如何修复域 DNS 配置?
- mongodb - Mongodb“无法在元素中创建字段'x'”
- javascript - 需要帮助获取价值 Google Maps API .pac-container 类
- python - 如何使用 itertools.chain 实现二叉树遍历迭代器?
- vb.net - 扩展方法不尊重 My.Application.Culture
- swift - 在 Safari 12 Extension Popover 中访问当前页面信息
- python - 任务栏中的 Tkinter 窗口具有过度直接 True