遠程控制原理
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'
})