Puppeteer chrome 获得活动/可见选项卡

2024-01-07

在 Chrome 扩展中,您可以使用下面的命令来查找窗口中的活动选项卡

chrome.tabs.query({
            currentWindow: true,
            active: true,
        }

我有一个连接到现有浏览器并获取所有页面的以下代码。我无法确定是否有办法让我知道哪个选项卡/页面当前是活动的并获取其 url (page.url(),但是要使用数组中的哪一个?)

const puppeteer = require('puppeteer');

debuggerUrl = "http://127.0.0.1:9999/json/version"

const request = require('request');

request(debuggerUrl, function (error, response, body) {
  data = JSON.parse(body);
  webSocketDebuggerUrl = data["webSocketDebuggerUrl"];
  console.log("Connecting to ", webSocketDebuggerUrl);
  puppeteer.connect({browserWSEndpoint: webSocketDebuggerUrl}).then(async browser => {
    var pages = await browser.pages();
    console.log(pages);
    console.log(await browser.targets())
    await browser.disconnect();
  })
});

document.hidden现已弃用。但我们可以使用文档.可见性状态 https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilityState

注意page即使您更改为不同的选项卡,也将始终引用相同的选项卡。所以你必须改变page手动转到活动选项卡。

const pages = await browser.pages();
// this will return list of active tab (which is pages object in puppeteer)
const visiblePages = pages.filter(async (p) => {
  const state = await p.evaluate(() => document.visibilityState);
  return state === 'visible';
});
const activeTab = visiblePages[0]; // since there should be only 1 active tab per window
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Puppeteer chrome 获得活动/可见选项卡 的相关文章

随机推荐

  • readAsDataURL 不处理 captureAudio 中的文件

    我的 FileReader 对象可以完美上传图像 我正在追踪onload以及其他事件 这些都在我上传图像时发生 fileReader new FileReader fileReader onloadstart e gt window ale
  • 在根模块中使用 aws_vpc 数据源的 Terraform 鸡/蛋问题

    我有一个根 Terraform 模块 它声明了 VPC 模块和其他模块 例如要在 VPC 中启动的 EC2 实例 在 EC2 模块中 我使用以下命令读取 VPCaws vpc type data aws vpc vpc filter nam
  • 在 Java 中将 DatagramPacket 转换为字节数组后解析它

    我正在尝试解析我将在套接字上收到的 DatagramPacket 我知道我将收到的数据包的格式 即 DHCPREQUEST 数据包 但我认为这并不重要 为了简单起见 我们只考虑前六个字段 第一个字段是 操作码 为 1 个字节 第二个字段是
  • 将调整大小的位图文件设置为 MFC 优化校准

    有没有比这更简单的方法 如果这是唯一的方法 这里是否存在潜在的内存泄漏 CImage img1 int dimx 100 dimy 100 img1 Load filename filename path on local system t
  • 内容安全策略 Internet Explorer 错误

    我添加了 Content Security Policy 它在 Chrome Firefox 和 Opera 上工作正常 但在 Internet Explorer 11 上我遇到此错误 此页面无法显示 add header Content
  • 多个图像处理程序调用导致 IE 在弹出窗口中挂起

    我们有一个ashx图像处理程序在过去几年中表现相当不错 但我们最近注意到一些奇怪的间歇性行为IE8 and IE9 我们有一个图库页面 作为图像 src 属性的一部分多次调用图像处理程序 该页面在弹出窗口中打开 该页面工作正常 但当窗口快速
  • 使用生成的匿名登录 ID 登录用户

    我正在编写一个 Android 应用程序 我正在尝试让用户匿名登录 这样他们就不必经历任何类型的注册过程 我将他们的匿名用户 ID 存储在共享首选项中 当应用程序打开时 我尝试根据该用户 ID 登录他们 我试图找出执行此操作的正确方法 因为
  • Centos htaccess 不被读取

    我正在开发一台新服务器 并通过 yum 安装了 Web Server 组 Php 和 mysql 工作正常 但我无法让 htaccess 工作 这是我的测试 htaccess 文件 WASD TEST CALL ERROR 我将其作为 ht
  • 简单的 IPython 示例在 sys.exit() 上引发异常

    我正在 IPython 中做一些非常简单的 PySide 和 PyQt 教程 一个教程只是创建一个带有一些滑块的窗口来演示插槽和信号 当我关闭正在运行的演示应用程序的窗口时 我看到以下错误 An exception has occurred
  • 访问在缓存块 Rmarkdown 文档中创建的全局环境对象

    我想运行 R 脚本来运行模拟并缓存 Rmarkdown 文档的结果 我正在使用 Rstudio 并尝试使用 knit HTML 创建 HTML 报告 这是一个简单的示例 r test global env cache TRUE print
  • 局部静态和局部变量的内存分配

    1 void main void int ptr1 ptr1 int malloc 2 void main void static int ptr2 ptr2 int malloc 我想问ptr1和ptr2的内存分配是如何完成的 The p
  • 如何在VBA中将自动生成的单选按钮设置为true?

    我正在创建一个 Excel 工作表 其中根据特定参数的值自动生成单选按钮 请参阅此以获得清晰的理解 复制一组单选按钮n次数 在哪里n是引用参数的行数 应根据条件检查此自动生成矩阵中的每个单选按钮 并且在与条件匹配的一组中 十二个单选按钮之一
  • CSS 中的 HTML 注释?

    我正在查看一些Amazon http en wikipedia org wiki Amazon com的 CSS 并注意到他们用 HTML 注释掉了 CSS 的一大块 我知道 Internet Explorer 具有 HTML 注释的条件格
  • “项目覆盖率设置为 0%” – JaCoCo 和 Sonar 在 Jenkins 中与 Ant

    我将工作从单个 Hudson 机器转移到了多从机 Jenkins 环境 现在 JaCoCo 覆盖范围不再起作用 工作 旧 哈德森2 0 1 詹金斯声纳插件 1 7 1 声纳2 1 2 破损 新 詹金斯 1 446 詹金斯声纳插件 1 7 2
  • Woocommerce 管理员订单详细信息 - 在订单详细信息页面上显示自定义数据

    我已经搜索并尝试了两天 但没有成功 请帮忙 我想过滤 woocommerce 订单 以根据产品属性将附加详细信息从数据库添加到订单详细信息页面 但我找不到适合此任务的 woocommerce 操作 过滤器挂钩 这里假设我有变量 is cus
  • 单应性估计 -> 结果是仿射矩阵?

    我正在开发一个基于平面标记的姿态估计系统 使用 Matlab 为了做到这一点 我检测网络摄像头捕获的图像中的一个矩形 获取 4 个角点的坐标 并计算这些角点之间齐次坐标的单应性 例如 58 46 75 90 M 67 108 133 89
  • 为什么此 SPARQL 查询没有返回任何结果?

    通过运行此查询DBpedia SPARQL 端点 http dbpedia org sparql给我带来了很多结果 与institution列填充 select person field institution where person a
  • 为什么 Cortex-A 的复位处理程序位于 0x0 而 Cortex-M3 则不然

    Cortex M3 的初始堆栈指针值位于 0x0 复位处理程序位于 0x4 原因是什么 这样做的设计理由是什么 为什么 ARM 人员不能像 Cortex A 那样将 0x0 留给复位处理程序 然后在复位处理程序内初始化 SP 我认为这属于
  • 使用 SQLITE3 和 Objective C 转换 DATETIME 时出现问题

    我有一个 sqlite3 数据库 其中包含 DATETIME 列 其中包含格式如下的值 2013 01 09 04 00 00 我想弄清楚如何确定时间是上午还是下午 以下是我如何使用 Objective C 从 Sqlite3 DB 读取和
  • Puppeteer chrome 获得活动/可见选项卡

    在 Chrome 扩展中 您可以使用下面的命令来查找窗口中的活动选项卡 chrome tabs query currentWindow true active true 我有一个连接到现有浏览器并获取所有页面的以下代码 我无法确定是否有办法