likes
comments
collection
share

Puppeteer连接已有Chrome浏览器

作者站长头像
站长
· 阅读数 1470

Puppeteer连接已有Chrome浏览器

前言  

Puppeteer是一个非常火爆的无头浏览器并在最近得到非常多的star。主要功能是使用安装的Chromium启动一个浏览器来模拟用户操作,但是这个浏览器可以说是一次性的无法缓存信息,很多时候我们希望Puppeteer可以复用本地已启动的浏览器。在查找多篇文章后总结出正确的使用方法:

使用 

1.为了保证顺利链接我们需要设置Chrome浏览器的启动端口

 右键快捷方式设置目标中的内容:在最后空格后添加 --remote-debugging-port=9222

Puppeteer连接已有Chrome浏览器

2.编写程序配置puppeteer配置

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

(async()=>{
    let wsKey = await axios.get('http://localhost:9222/json/version');
    let browser=await puppeteer.connect({
        browserWSEndpoint: wsKey.data.webSocketDebuggerUrl,
        defaultViewport:null
    });
    let page=await browser.newPage()
    await page.goto('https://blogweb.cn');
    
    // await page.close()
    // await browser.disconnect()
})()

Puppeteer连接已有Chrome浏览器

讲解

使用axios获取对应链接(http://localhost:9222/json/version)的通信配置传入puppeteer配置(链接中的端口号需要和Chrome目标路径中的端口号对应)

后面就是基本的创建页面页面滚动以及页面跳转的配置了

总结

  1. 修改Chrome固定端口号
  2. 在配置browser配置前请求对应的连接获取webSocket配置
  3. 将webSocket的key放入对应的配置中