首页 > 解决方案 > 如何使用 puppeteer 在“headful” chrome 中加载多个扩展?

问题描述

我在启动 puppeteer chromium 时发现了一个成功加载扩展的代码,但我无法让它与多个扩展一起工作。

根据 Paul Browne 的帖子,它应该像这样工作:https ://github.com/GoogleChrome/puppeteer/issues/659#issuecomment-409589805

var options = {
  headless: false,
  args: [
    '--disable-extensions-except=/path/to/ext1/, /path/to/ext2/, /path/to/ext3/'
  ]
}

当我只输入 1 个路径时它工作得很好,但逗号分隔的路径列表不起作用。浏览器仍然打开,但它只加载第一个扩展,按照它们在标志中的列出顺序。--load-extension确实不需要扩展来加载。

有人想出一个多扩展的解决方案吗?

标签: google-chromegoogle-chrome-extensionpuppeteer

解决方案


您可以通过这种方式加载多个扩展:

const ext1 = 'path to ext1';
const ext2 = 'path to ext2';
const ext3 = 'path to ext3';
const browser = await puppeteer.launch({
      headless: false,
      args: [`--disable-extensions-except=${ext1},${ext2},${ext3}`]
});

确保以逗号分隔的扩展名列表中没有空格,因此请确保它是

${ext1},${ext2},${ext3}

不是

${ext1}, ${ext2}, ${ext3}

推荐阅读