我有一个 chrome 扩展正在尝试实现 puppeteer-web。我已按照以下代码尝试进行设置puppeteer-web:“Puppeteer 不是构造函数” https://stackoverflow.com/questions/53001009/puppeteer-web-puppeteer-is-not-a-constructor/53024164#53024164
这是我的代码:
const puppeteer = require("puppeteer");
async function initiatePuppeteer() {
let browserWSEndpoint = '';
await fetch("http://127.0.0.1:9222/json")
.then(response => response.json())
.then(function(data) {
let filteredData = data.filter(tab => tab.type ==='page');
browserWSEndpoint = filteredData[0].webSocketDebuggerUrl;
})
.catch(error => console.log(error));
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint
});
const page = await browser.newPage();
....etc
}
当我将调试器放在const browser = await puppeteer.connect
我收到错误
Uncaught (in promise) Error: Protocol error (Target.getBrowserContexts): Not allowed.
使用Chrome版本V76.0.3809.100
有任何想法吗?
编辑:我的 webSocketDebuggerUrl 是这样的ws://127.0.0.1:9222/devtools/page/E1B62B356262B00C26A5D79D03745360
我怀疑这是因为/page/
并不是/browser/
但我无法从 /json 路线找到任何类型的浏览器。今晚我会再看一遍。
好吧,事实证明 puppeteer 只能连接到browser
目标而不是page
目标按照https://github.com/GoogleChrome/puppeteer/issues/4579#issuecomment-511267351 https://github.com/GoogleChrome/puppeteer/issues/4579#issuecomment-511267351
并阅读 API 文档(我应该早点完成......)https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#browserwsendpoint https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#browserwsendpoint指出 URL 为browser
目标是http://${host}:${port}/json/version
而不仅仅是/json
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)