使用DevTools协议在窗口中打开新选项卡

时间:2018-01-12 04:37:42

标签: node.js google-chrome puppeteer

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

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协议消息发送到浏览器窗口?我想打开一个新标签,并执行其他操作。有谁知道怎么样?

1 个答案:

答案 0 :(得分:3)

Haven没有对它进行过测试,但是从文档中读取可以做到这样的事情:

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

你可以找到:

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