我有一个chrome扩展程序正在尝试实现puppeteer-web。我已按照以下代码尝试进行设置
puppeteer-web: "Puppeteer is not a constructor"

这是我的代码:

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路由中找到任何类型的浏览器。今晚我再看一遍。

最佳答案

好了,事实证明,根据https://github.com/GoogleChrome/puppeteer/issues/4579#issuecomment-511267351,操纵p的人只能连接到browser目标,而不能连接到page目标

并阅读API的文档(我应该早些做过……)https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#browserwsendpoint指出browser目标的URL是http://${host}:${port}/json/version而不是/json

关于 puppeteer 网: Protocol error (Target: getBrowserContexts) not allowed,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57572062/

10-11 21:14