如何使用木偶wsendpoint打开链接
我尝试像这样使用wsendpoint连接浏览器:
(async () => { const browser = await puppeteer.connect({browserWSEndpoint: 'ws://localhost:9222/devtools/page/eedbdd50-cd25-472d-a701-a0302d9ffe2f'}); const page = await browser.newPage(); await page.goto('https://www.google.com.tr'); })();
这段代码可以打开新标签,但不要去链接。 它给错误:
(node:2022) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Protocol error (Performance.enable): 'Performance.enable' wasn't found undefined (node:2022) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
问题是你给木偶的URI:
ws://localhost:9222/devtools/page/eedbdd50-cd25-472d-a701-a0302d9ffe2f
这是可以控制的页面/选项卡,但puppeteer钩到浏览器 websocket端点。 对此端点执行curl/请求调用以查找浏览器的端点:
https://localhost:9222/json/version
应该是包含/browser
而不是/page
的path。 一旦你有了这个URI,你就可以打电话给puppeteer.connect
来开始你的会话。
如果您需要更多的交钥匙解决scheme来连接到远程会话,您可以尝试https://browserless.io,因为它为您处理所有这些事情。
祝你好运!
尝试这个:
const puppeteer = require('puppeteer'); puppeteer.connect({ browserWSEndpoint: 'your endpoint...' }).then(async browser => { const page = await browser.newPage(); await page.goto('https://www.google.com.tr'); });