Я хочу иметь возможность запускать puppeteer-web из расширения Chrome, но подключить его к браузеру с помощью API-интерфейса chto.debugger devtools, который доступен для расширений. В отличие от подключения к удаленному порту отладки (9222) или 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();
}
Это работает нормально, но это означает, что я должен запустить Google Chrome с параметром --remote-debugging-port=9222
, который не идеален. Кажется ненужным открывать порт удаленной отладки, когда API chrome.debugger уже доступен для расширений, поэтому расширение не должно выходить «за пределы» приложения для доступа к devtools.
Я видел, что в тестовом файле браузера кукловода есть пример, где он вызывает puppeteer.connect({transport: window.cdp});
, и это похоже на то, что я хочу сделать, но свойство window.cdp
не определено в моем расширении, и я не могу найти никакой документации об этом.
Любая помощь будет высоко ценится, спасибо.