puppteer 遠程控制

遠程控制原理

chrome 使用 debug 模式開啟,找到 chrome 所在目錄執行如下命令chrome.exe --remote-debugging-port=53249,可以打開一個 websocket 通道,提供遠程控制功能,在瀏覽器中輸入 http://localhost:53249/json/version,可以得到 ws 連接地址如圖

m_3a6070afbad348565fa7d9b4ec745f63_r.png

使用如下代碼可以連接此瀏覽器

const browser = await puppeteer.connect({
    browserWSEndpoint: 'ws://localhost:53249/devtools/browser/52fd0c9e-3f37-4b38-9c17-0c58e5f9bc43'
});

puppteer 中如何連接

server 代碼

打開一個瀏覽器,并記錄 ws 連接

const puppeteer = require('puppeteer')
const fs = require('fs')

const browser = await puppeteer.launch({
      headless: false,
      defaultViewport: {
        width: 1900,
        height: 1400
      }
})
    
const wsEPAddress = browser.wsEndpoint()
fs.writeFileSync(__dirname + '/ws', wsEPAddress)

client 代碼(可以多個同時控制)

通過 ws 連接瀏覽器,進行遠程控制

const puppeteer = require('puppeteer')
const fs = require('fs')
const browserWSEndpoint = fs.readFileSync(__dirname + '/ws')

const browser = await puppeteer.connect({
    browserWSEndpoint
});
const page = await browser.newPage();
await page.goto('https://www.baidu.com', {
    timeout: 0,
    waitUntil: 'domcontentloaded'
})

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容