问题标签 [chrome-devtools-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
124 浏览

google-chrome - 如何在 chrome 开发工具中显示自己的数据

假设我设法获取(并存储)控制台输出、网络流量、cookie 和站点 A的 HTML (通过使用扩展程序或/加上脚本)。

现在我拥有所有这些日志,并希望在站点 B 上显示它们,就好像它们是站点 B 的实际日志一样,这意味着如果我Ctrl+ Shift+I它,我会看到站点的A HTML、控制台输出等。

一种方法可能是让新的开发工具扩展类似于播放我的数据的现有工具扩展,但是让所有这些选项卡基本上重复似乎是错误的(并且需要大量工作)。

有没有一种简单的方法可以在不创建新的开发工具选项卡的情况下执行此操作?例如将这些日志发送到现有的开发工具选项卡?(元素、网络、控制台等)。

做了一些研究,但找不到 API 公开方法来提供现有选项卡。

0 投票
0 回答
436 浏览

google-chrome - 使用 --remote-debugging-port 将 devtools 扩展与 Chrome 的远程 devtools 一起使用

--remote-debugging-port在电子应用程序中使用 Chromium 的标志来远程访问端口上的 Devtools。我想将 React Devtools 扩展与这些 Devtools 一起使用。如果我使用 Electron 的 API 安装 Devtools 扩展并使用打开 Electron 中的 Devtools webContents.openDevtools(),它可以正常工作。但我无法让它与远程 Devtools 一起工作。有没有办法使用 Chrome DevTools 协议来启用远程 Devtools 的扩展?

0 投票
1 回答
2069 浏览

c# - C# Selenium Chrome Devtools 协议

我正在尝试使用这个 devtools protcol 命令:Page.AddScriptToEvaluateOnNewDocument.

似乎这个协议命令在selenium 的 c# 版本中没有完全实现。我也尝试了单击事件,但这也不起作用。但是,我能够使用一个 devtools 命令,一个带有代码的网络命令:

我可以做些什么来自己解决这个问题吗?

参考资料:
https ://github.com/SeleniumHQ/selenium/issues/8000

0 投票
2 回答
429 浏览

python - 获取与 DOM 元素关联的事件列表

在 Firefox 中,可以在开发人员工具的 Inspect Element 中查看与每个元素相关的事件。 在此处输入图像描述

我想以编程方式列出与之关联的元素和事件。最好使用硒+蟒蛇。

我知道getEventListenersChrome 的开发人员工具中有可以使用的功能,但在 Selenium 中无法访问。

我经历了这个问题中提供的大多数解决方案,但没有找到解决我的问题的方法。

我的最终目标是迭代给定页面的 throw html 元素并执行每个元素的事件。

0 投票
1 回答
1703 浏览

c# - 如何调用这个函数devtools selenium c#

我试图在 devtools 协议Network.setRequestInterception中调用此方法。到目前为止,我有这个:

我不知道如何用正确的参数来调用它。在文档中,它显示了它的对象类型,但在 selenium 代码中有所不同。它使用this作为参数之一,并使用this作为函数。

我正在尝试使用 resourceType Image 调用 setRequestInterception

0 投票
3 回答
732 浏览

google-chrome-devtools - 通过 Chrome DevTools 协议读取 DOMStorage / LocalStorage

我知道下面的代码片段可以让我读取所有当前的 cookie:

预览 Network.getCookies

现在,出于测试目的,我需要获取所有可用LocalStorage条目。我尝试了一些东西,但不幸的是我没有得到它。Chrome DevTools 本身只使用已经可用的securityOrigin变量查询它,我不知道它是从哪里获取的:

CDP 获取DOMStorageItems

我也发现Page.getFrameTree但缺少一些条目 - 所以我认为这与以下条目无关LocalStorage

本地存储视图

我缺少的文档中还有其他方法吗?

编辑#1

正如评论中提到的,我得到了它的使用Page.getResourceTree。不幸的是,我得到的下一个问题如下:

0 投票
0 回答
99 浏览

selenium - 用于 Selenium 调试的 Debugger.setPauseOnExceptions 不起作用

--auto-open-devtools-for-tabs为了调查由于 Javascript 错误(在 Google Chrome 中)导致的 Selenium 测试失败,我使用 Chrome 的命令行选项结合Debugger.setPauseOnExceptionsChrome Devtools Protocol 命令在本地(非无头)运行测试(另请参见Break on exception in Chrome使用硒)。

显然这不起作用(不再),Selenium for Python 中的一个小测试用例:

根据chromedriver.logCDP 命令似乎被正确接受。有什么我错过的吗?

Python 3.8 上的当前(稳定)Selenium 客户端(3.141.0)和当前的 Google Chrome(83)。

0 投票
1 回答
510 浏览

javascript - 仅从 Devtools 协议获取对元素的 Javascript 引用 backendNodeId

我希望能够将鼠标悬停在页面上,让它突出显示光标下方的元素(与开发人员工具检查器相同),并且当我单击鼠标时获取元素的 XPath。启用元素检查器并通过代码接收 XPath,并由人工选择元素。

我可以通过使用Chrome Devtools 协议并将Overlay.setInspectMethodinspectNode=searchForNode.

单击鼠标后,我会从事件中收到单击元素的DOM.BackendNodeIdOverlay.inspectNodeRequested

devtools 协议似乎没有任何内置方法来获取 XPath。所以我找到了 Chrome 开发者工具 Copy->Xpath 功能的这个javascript 实现。

虽然我可以通过 CDT 协议评估 javascript,但经过数小时的尝试,当我只有 BackendNodeId 时,我无法弄清楚如何获取对节点的引用以执行 javascript 函数。

有没有办法在 javascript 中获取对节点的引用,或者有没有办法在 CDTProtocol 中获取节点 XPath?

0 投票
1 回答
56 浏览

google-chrome - puppeteer 的最大断点数?

有谁知道可以使用 Puppeteer 设置的最大断点数的限制是多少?当调试器使用 Debugger.paused 事件命中这些断点时,我将收集所有堆栈跟踪。

0 投票
1 回答
413 浏览

r - 使用 RStudio Chromote 获取页面生成的 XHR 请求的响应正文的正确方法

我想使用 Chromote 来收集网站发出的 XHR 调用的响应主体,但我发现 API 掌握起来有点复杂,尤其是异步管道。

我想我需要先启用网络功能,然后加载页面(可以这样做),但是我需要:

  • 列出所有 XHR 调用
  • 通过识别请求 URL 中的模式来过滤它们
  • 访问所选来源的请求正文

有人可以提供这方面的任何指导或教程材料吗?

更新:好的,我切换到包crrri并为此目的制作了一个通用功能。唯一缺少的部分是一些逻辑来决定何时关闭连接并返回结果: