使用 DevTools 协议在 window 中打开新标签页

Use DevTools protocol to open new tab in window

我正在使用 puppeteer 启动新的 Chrome 浏览器 window:

const util = require('util');
const puppeteer = require('puppeteer');

(async () => {

  const b = await puppeteer.launch({
    headless: false,
    devtools: true, // open DevTools when window launches
    args: ['--remote-debugging-port=9222']
  });

  console.log('browser:', util.inspect(b));

  const c = await puppeteer.connect({
    browserWSEndpoint:   b._connection._url,   //`ws://${host}:${port}/devtools/browser/<id>`,
    ignoreHTTPSErrors: false
  });

  console.log('connection =>', c);

})();

我的问题是 - 如何使用 websocket 连接 c,将 DevTools 协议消息发送到浏览器 window?我想打开一个新选项卡,并执行一些其他操作。有人知道怎么做吗?

还没有测试过,但是阅读文档你可以这样做:

const client = await page.target().createCDPSession();
await client.send('Target.createTarget', {'https://whosebug.com'});

您可以找到:

  • CPDSession here
  • 的文档
  • Chrome 开发工具协议的文档 here