Puppeteer如何与现有的Chrome实例进行交互?

17 min read

Puppeteer可以与现有的Chrome实例进行交互,只需调用connect()方法并传递一个配置对象即可。

以下是一个使用Puppeteer与现有Chrome实例进行交互的示例代码:

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.connect({
    browserWSEndpoint: 'ws://localhost:3000', // Chrome实例的WebSocket地址
    defaultViewport: null // 可选,指定默认视口大小
  });

  const page = await browser.newPage();
  
  // 在已连接的Chrome实例中进行页面操作
  await page.goto('https://example.com');
  await page.screenshot({ path: 'screenshot.png' });

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

在上面的代码中,connect()方法会返回与现有Chrome实例连接的Browser实例。然后,可以通过browser.newPage()方法创建一个新的页面,然后在该页面上进行操作。在这个示例中,我们访问https://example.com并截取页面的屏幕截图。

请注意,你需要提供正在运行的Chrome实例的WebSocket地址。你可以通过在运行Chrome实例时指定--remote-debugging-port标志来启用远程调试,并使用--remote-debugging-address指定WebSocket地址。