如何使用木偶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'); });