问题标签 [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.
go - 使用来自客户端的密钥代码输入 chromedp
我在 javascript 中有一段代码向服务器发送一个请求,其中包含我的按键列表。我获取密钥代码的方式是这样的:
在我的 golang 代码中,我尝试使用这些在 chromedp 实例中键入一些文本,方法是:
问题是这种类型实际上是关键代码,我一直在试图找到一种方法来做到这一点,但我不知道。
有谁知道如何做到这一点?
提前致谢。
编辑
我已将代码添加到 github,这是 repo: https ://github.com/ericmackrodt/netscape-proxy
客户端收集键码并将它们作为查询参数发送到此处:
https://github.com/ericmackrodt/netscape-proxy/blob/main/templates/browser.html#L48
服务器在此处从客户端接收密钥代码:
https://github.com/ericmackrodt/netscape-proxy/blob/main/server.go#L80
然后对其进行解析并尝试在此处键入它们:
https://github.com/ericmackrodt/netscape-proxy/blob/main/browser/browser.go#L70
代码应该很容易重现。
chrome-devtools-protocol - Chrome DevTools 协议 - 发送 Mediakey 不起作用
我想使用 Chrome DevTools 协议发送(模拟)媒体密钥(VK_MEDIA_PLAY_PAUSE)。因此我使用方法
与参数
但它不起作用。我能做些什么来解决这个问题?
google-chrome - 如何从 chrome 获取 DOM.shadowRootPushed 事件?
我一直在尝试使用from来获取DOM.shadowRootPushed
事件。这是加载的页面包含 shadowRoot:CDPSession
puppeteer
而且,我正在使用这个脚本来获取事件:
我明白了Animation.animationCreated
。CDP 网站称DOM.shadowRootPushed是一个实验性事件。是否需要在启动选项中传递标志?依赖项:
Chrome Version
:版本 90.0.4427.0(开发者构建)(64 位)
调试日志:
更新:
根据评论,我添加了以下标志:
并应用dev
, beta
, canary
,stable
为--fake-variations-channel
. 未捕获通知。
electron - 如何使用开发工具 API 自动启用自定义开发工具格式化程序?
我想在我的 Electron 应用程序的开发工具中启用“自定义格式化程序”设置,如下所述:https ://github.com/MarshallOfSound/electron-devtools-installer/issues/36#issuecomment-285956783
手动启用设置是可能的,但我想在打开开发工具时自动进行,这样其他开发人员就不必记住自己做。
是否可以通过Electron API使用开发工具命令自动启用此设置?Debugger
我发现单击开发工具中的复选框会通过Chromium 中的此代码路径,但否则我无法弄清楚如何使用调试器 API 以编程方式执行此操作。
我尝试了以下方法:
但设置似乎没有改变。
cookies - Puppeter / PuppeteerSharp:Cookie 标头覆盖是间歇性的
我想为网页中的单个请求覆盖 cookie 标头。为此,我目前正在使用PuppeteerSharp和 Chrome Devtools Protocol Fetch API(具体来说,我正在使用Fetch.enable
、Fetch.requestPaused
和Fetch.continueRequest
)。
请注意,我不想使用Network.setCookie,因为我想绕过浏览器对 cookie 存在的了解。(换句话说,我不希望 cookie 出现在 Chrome DevTools -> Applications -> Cookies 选项卡中)。
我观察到这是间歇性的。如何使此 cookie 覆盖不是间歇性的,而是适用于所有请求?
这是 PuppeteerSharp 代码:(SET THE COOKIE HEADER OVERRIDE
重要部分请参见注释)
如果我查看 Chrome DevTools Network 选项卡,我发现 21 个请求中只有 3 个具有abcdefg=1234567
cookie 覆盖。下面是一个没有的请求示例:
更新:在进行更多研究时,chrome.webRequest onBeforeSendHeaders
确实可以完成我正在寻找的工作,即在不告诉浏览器 cookie 是什么的情况下覆盖单个请求的 cookie 标头。这是一个删除 cookie 标头的代码示例(我找不到以上面 Puppeteer 代码片段的方式替换 cookie 标头的示例)。
现在要弄清楚 PuppeteerSharp 是如何onBeforeSendHeaders
做到的......
google-chrome - 监控无头 Chrome
我通过 CDP(Chrome devtools 协议)在无头模式下使用 Chrome 进行 HTML 到 PDF 的转换。效果很好,但我不相信 Chrome 会永远运行,我想构建一个守护服务来监控它的响应能力,并在必要时终止进程并重新启动它。
什么是健康的良好指标?我正在寻找的是一个低开销的测试,我可以以相当频繁的时间间隔执行,以便最大限度地减少重启延迟。
- 如果有人有建议和确定成功的可靠方法,我可以尝试执行某种 CDP 命令。
- 我想不出其他任何东西,这就是为什么我把它打开以征求建议。
c# - Chrome Devtools 协议和发布
使用 Chrome Devtools 协议 (CDP) 可以使 Chrome “导航”到 URL。这样做会产生一个 GET。
有没有办法用 POST “导航”并提供身体?NavigateCommand 似乎只定义了 Url、CommandName、FrameId、Referer 和 TransitionType。
我正在使用 CDP 的 BaristaLabs 实现的变体。执行 GET 的代码如下所示:
参数是我的postBody
,它还没有做任何事情。
显然,帖子通常来自远程客户端。但我看不出它无法模拟的任何内在原因,除了没有命令来模拟它。
我怀疑这个问题实际上是关于 CDP 以及我可能需要添加到 Barista Labs CDP 实施中的内容。
electron - 如何在电子中使用 Chrome DevTools 协议的 Page.startScreencast 命令录制为图像或视频?
我想使用Chrome DevTools Protocol的Page.startScreencast命令记录我的电子应用程序的内容?
找不到任何示例用途。怎样才能做到这一点?
node.js - chrome远程接口ECONNREFUSED 127.0.0.1:9222
我正在使用 Testcafe,它不直接支持访问 Chrome 开发工具。我的目标是切断网络,以便我可以在网站上看到错误对话框。这是我写的代码。TestCafe 在不同的 url 打开 这是 URL: http: //192.168.0.123 :52678/someRandomStringHere/https://abcdefgh.com/abcdefgh/
我无法为此 url 配置参数。仅供参考,端口号更改,它不是固定的。有人可以帮我解决这个问题。
javascript - 如何使用 Puppeteer 捕获渲染过程?
我想要页面外观更改时的所有屏幕截图和时间戳,以便我可以重播渲染过程。
我尝试使用 每隔 x 秒截屏一次page.screenshot()
,但截屏似乎延迟了。