我了解到Chrome Devtools协议通过API公开了Google Chrome DevTools,从而可以通过编程方式进行控制,并且puppeteer提供了Node.js实现来实现此目的。但是,如果我没记错,puppeteer不允许我们做DevTools协议可以做的一切。
如果我想远程调试我的android chrome浏览器,就像可以手动进行的那样,通过进入DevTools的“远程设备”部分,是否可以绕过puppeteer来进行调试?是否有一个软件包可以让我们访问DevTools协议的更多核心功能?
答案 0 :(得分:2)
是的,您可以这样做。木偶戏只是Chrome DevTools Protocol的包装。要了解该协议的工作原理,您可能需要看看Protocol Fundamentals,其中介绍了基本知识。
要在较低级别上进行交流,您还可以使用p。请查看CDPSession
文档,其中提供了API的“低级”部分。
const client = await page.target().createCDPSession(); // creates a "low level" session
await client.send('COMMAND'); // sends the command to the browser
client.on('MESSAGE', () => { /* message from the browser received */ });
如果您不想使用puppeteer,则还有多个其他库。 Node.js中最常用的一个是chrome-remote-interface,它比伪造者更底层。根据{{3}}:
chrome-remote-interface [...]是Chrome调试协议的通用1:1 Node.js绑定。如果您需要原始协议的所有功能,例如,实现自己的高级API,请使用它。
还有多个其他库(也适用于其他语言)。您可以找到一个to the docs。