访问Puppeter中firefox插件的后台页面

访问Puppeter中firefox插件的后台页面,firefox,google-chrome-extension,firefox-addon,puppeteer,firefox-addon-webextensions,Firefox,Google Chrome Extension,Firefox Addon,Puppeteer,Firefox Addon Webextensions,是否可以在Puppeter中获取Firefox插件的background\u页面target 为了测试chrome扩展,在加载扩展时,我可以通过执行以下操作轻松访问后台页面: // Bring up chrome browser with extension loaded const browser = await puppeteer.launch({ headless: false, defaultViewport: null, ignoreHTTPSErrors: true,

是否可以在Puppeter中获取Firefox插件的
background\u页面
target

为了测试chrome扩展,在加载扩展时,我可以通过执行以下操作轻松访问
后台页面

// Bring up chrome browser with extension loaded
const browser = await puppeteer.launch({
  headless: false,
  defaultViewport: null,
  ignoreHTTPSErrors: true,
  timeout: 0,
  args: [
    `--disable-extensions-except=${CRX_PATH}`,
    `--load-extension=${CRX_PATH}`,
    '--ignore-certificate-errors',
    '--no-sandbox',
    '--disable-setuid-sandbox',
    '--window-size=1920,1080',
  ],
});

// Fetch browser targets
const targets = await browser.targets();

// Filter out background_page for extension from the targets
const backgroundPageTarget = targets.find((target) => {
  return target.type() === 'background_page';
});
我可以按照以下指南加载firefox插件:


但是,我无法访问加载项的
后台页面
。我需要它来拦截和验证附加组件发出的请求和响应。

我通过以下步骤使它与Selenium一起工作:

  • 打开让Puppeter连接到的同一个Firefox浏览器应用程序

  • 加载扩展的方式与让Puppeter加载扩展的方式相同(有不同的方式,我使用Firefox dev edition加载未签名的版本)

  • 激活扩展的弹出窗口,然后右键单击并选择查看页面源

  • 在URL中,您应该看到以下模式
    查看源代码:moz-extension:///.html

  • 使用此扩展ID,您可以让浏览器导航到
    moz,使脚本转到后台页面-extension:///.html