Puppeteer – 连接浏览器

有时需要与现有的Chrome实例进行交互,可以使用puppeteer通过websocket连接浏览器实例:

const chromeLauncher = require('chrome-launcher');
const axios = require('axios');
const puppeteer = require('puppeteer');

(async () => {
  // 手动初始化Chrome实例
  const chrome = await chromeLauncher.launch({
    chromeFlags: ['--headless']
  });
  const response = await axios.get(`http://localhost:${chrome.port}/json/version`);
  const { webSocketDebuggerUrl } = response.data;

  // 使用“browserWSEndpoint”连接实例
  const browser = await puppeteer.connect({ browserWSEndpoint: webSocketDebuggerUrl });
  console.info(browser);

  await browser.close();
})();

可以看到,

  1. 我们首先使用Chrome-launcher启动一个Chrome实例
  2. 然后,获取实例的webSocketDebuggerUrl值
  3. 使用puppeteer的connect方法,通过webSocketDebuggerUrl连接浏览器实例

注意

运行脚本之前,先安装chrome-launcheraxiosnpm install chrome-launcher axios



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载