javascript - 如何使用 chrome.debugger API 在 chrome 扩展中运行 puppeteer-web?
问题描述
我希望能够从 chrome 扩展程序内部运行 puppeteer-web,但让它使用扩展程序可用的 chrome.debugger devtools API 连接到浏览器。而不是连接到远程调试端口 (9222) 或 websocket url。
在我的扩展程序中运行的 javascript 代码是这样的:
const puppeteer = require('puppeteer');
async function runPuppet(url) {
const browser = await puppeteer.connect({browserURL: 'http://localhost:9222'});
const page = await browser.newPage();
await page.setRequestInterception(true);
await page.goto(url);
return page.url();
}
这很好用,但这意味着我必须使用--remote-debugging-port=9222
不理想的选项启动 google chrome。当 chrome.debugger API 已经可用于扩展时,似乎没有必要打开远程调试端口,因此扩展不必为了访问 devtools 而进入应用程序的“外部”。
我已经看到,在puppeteer 浏览器测试文件中有一个示例,它调用了它puppeteer.connect({transport: window.cdp});
,这看起来像是我想做的事情,但是window.cdp
我的扩展中的属性未定义,我也找不到任何关于它的文档。
任何帮助将不胜感激,谢谢。
解决方案
推荐阅读
- avro - 我可以限制 avro-tools 读取的行数吗?
- php - 未通过中间件时来自节流请求的 TypeError
- php - 从数据库结果 PHP 构建 JSON
- swift - 在 Swift 中创建一个以可变整数作为输入的平方数数组
- android - Google In App Purchase 检索已消费的购买
- node.js - 如何取消对未授权资源的订阅
- elasticsearch - 在弹性搜索中使用 Jest 客户端更新部分文档
- python - Numpy:高效的矩阵索引
- angular - 如何在每次路由更改时禁用渲染 MasterComponent
- ruby-on-rails - 将字符串数组转换为 StrongParameters 白名单