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地址。