Puppeteer-web : Protocol error (Target: getBrowserContexts) not allowed

标签 puppeteer

我有一个 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 = wait 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

并阅读 API 文档(我应该早点完成...)https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#browserwsendpoint声明 browser 目标的 URL 是 http://${host}:${port}/json/version 而不仅仅是 /json

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

相关文章:

c# - PuppeteerSharp 和页面级代理

javascript - 如何在 Puppeteer 中单击并按住

javascript - 使用 Puppeteer 将结果抓取到 JSON 时重启无限

javascript - 错误: invalid namespace puppeteer node js

node.js - Puppeteer:覆盖 API 请求并在没有其他包的情况下使用模拟数据进行响应

javascript - 评估失败 : TypeError: Cannot read properties of null (reading 'firstElementChild' )

node.js - Heroku 错误 R10(启动超时) Node 上的 Puppeteer(网页抓取应用程序)

javascript - Puppeteer:page.evaluate 抛出 TypeError:无法读取 null 的innerText

node.js - Page.evaluate() 返回未定义,但语句在 Chrome devTools 中有效

javascript - 从 puppeteer PDF 中删除分页符?