如何使用chrome.debugger API在chrome扩展程序内部运行puppeteer-web?

时间:2019-07-01 08:32:20

标签: javascript google-chrome-extension puppeteer

我希望能够从chrome扩展程序内部运行puppeteer-web,但可以使用扩展程序可用的chrome.debugger devtools API将其连接到浏览器。与连接到远程调试端口(9222)或websocket url相反。

在我的扩展程序中运行的javascript代码是这样的:

const puppeteer = require('puppeteer');

async function runPuppet(url) {
  const browser = await puppeteer.connect({browserURL: 'http://localhost:9222'});
  const page = await browser.newPage();

  await page.setRequestInterception(true);
  await page.goto(url);

  return page.url();
}

这很好用,但是这意味着我必须使用--remote-debugging-port=9222选项启动google chrome,这并不理想。当chrome.debugger API已可用于扩展程序时,打开远程调试端口似乎是不必要的,因此该扩展程序不必为了访问devtools而位于应用程序的“外部”。

我已经看到在puppeteer browser test file中有一个示例,它调用puppeteer.connect({transport: window.cdp});,看起来像我想做的事情,但是属性window.cdp在我的扩展程序,也找不到任何有关它的文档。

非常感谢您的帮助。

0 个答案:

没有答案