问题标签 [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.
c# - C#:Opera 58.x 的问题 操作员 2.42 | Selenium 3.141 - 无法访问 Opera
在过去的 10 年里,我一直在进行产品开发和测试,并在几年前接手了我们公司的一种产品的研发硒测试。我正在更新我们的 C# 测试框架,该框架在一系列浏览器中测试我们产品的网络服务器功能。PM 最近添加的浏览器之一是 Opera。目前,我们在我们的框架中使用以下版本控制:
Selenium WebDriver:V3.141.0.0 Selenium WebDriver.Support:V3.141.0.0 Operadriver_win64 : V2.42 Opera 浏览器:58.0.3135.127
PM 指定我们必须确保为我们的客户支持 Opera 58.x,因为这将在我们的下一个产品版本中记录给客户,所以不幸的是,我必须针对这个特定版本进行测试。
我在网上做了一些关于自动化 Opera 的广泛阅读。我从 GitHub 确定我需要 Operachromiumdriver v2.42 用于我的特定 58.x 版本的 Opera。
当我以管理员身份使用 nunit 运行上述代码时,依次发生以下 3 件事:
- Operadriver.exe 控制台窗口启动
- OperaSoftware.OperaWebBrowser.1610649940 控制台窗口启动
- Opera.exe 实例启动
此时,nunit 指示此测试出现以下错误: SystemTest_S7_1200.Communications._45WebServer._456_WebServer_Opera._45001_BasicFunctionality: SetUp : OpenQA.Selenium.WebDriverException : unknown error: Opera failed to start: crashed (Opera not reachable) (进程从chrome 位置 C:\Users\System Test\AppData\Local\Programs\Opera\58.0.3135.127\opera.exe 不再运行,因此 OperaDriver 假设 Opera 已崩溃。)(驱动程序信息:OperaDriver=2.42.3135( O58),平台=Windows NT 10.0.17763 x86_64)
在 OperaSoftware.OperaWebBrowser 控制台中,记录了以下内容:
我知道我真的很接近让它工作......我认为我的障碍是 DevTools HTTP 请求在多次尝试时失败,最终导致 InitSession 失败,因为它无法到达/附加到 Opera。
我的问题......我在这里错过了什么?对于我们测试的其他浏览器,如 Chrome、IE11、FF 等,启动 webdriver 并附加到浏览器实例一点也不难。恐怕我所缺少的一切都是显而易见的,而我只是没有看到。当然,根据我在网上的研究,在使用 Opera 进行测试时,我没有看到任何明确和明确的信息。绑定到特定版本使这个问题成为一个障碍。非常感谢任何输入。
google-chrome-devtools - 有没有办法在 google Devtools 控制台中获取所有上下文 ID 的列表?
在我的自动化中,我尝试使用 chrome devtools 协议来设置 localStorage,因为我需要在子域而不是主域上设置它。我可以通过在开发工具中转到控制台中的特定 iframe 上下文并运行来做到这一点,localStorage.setItem("key", "value")
但是当使用 devtools 协议时,我需要为要使用的contextId
特定上下文指定一个,但我不知道该怎么做找到那个 ID。
我不介意它是如何完成的,但它需要能够自动化,并且应该返回所有 Id 的列表,或者应该能够传入上下文名称然后返回 id
谢谢。
java - 在 Java 的 DevTools 中获取网络请求的响应正文数据
请帮助获取使用 Devtools 网络拦截的请求的响应正文(作为 json)。下面是我可以尝试的代码。谢谢!
javascript - 附加调试器时,Electron BrowserWindow 无法获得响应
我正在编写一个 Electron 应用程序,它创建一个BrowserWindow
. 我想捕获一些发送到服务器的请求,我还想响应那里的请求。使用 Electron WebRequest
api 我无法得到响应,所以在网上搜索并发现我可以以编程方式附加调试器。
我使用以下代码附加调试器,并且几乎所有响应都正确。但是对于一个更大的请求,我无法得到响应。我收到一个错误
如果我启动 DevTools 并导航到该请求,我也无法得到响应:Failed to load response data
. 如果我在下面的代码中注释掉,DevTools 中的响应会正确显示。
请注意,这只发生在一个返回大约 1MB 响应的特定请求中。对于所有其他请求,我可以使用getResponseData()
.
简短更新
此特定请求的事件堆栈如下,其中13548.212
简单的 requestId
python - [Selenium 4.0.0-beta-1]:如何在 CDP 中添加事件监听器
我已经从源代码构建并安装了Selenium 4.0.0-beta-1 python 轮以测试CDP功能。具体来说,我想使用Fetch Domain protocol拦截请求。
我可以使用命令启用域Fetch.enable
,但我看不到如何订阅Fetch.requestPaused之类的事件来拦截请求:
谢谢你的帮助!
c# - WebView2 DevToolsProtocolEvent 未引发
我正在尝试创建一个使用WebView2 WPF 组件的应用程序。目前,我正在记录由网站的 javascript 代码使用console.log()
.
这就是我现在所拥有的:
如您所见,我使用GetDevToolsProtocolEventReceiver方法来订阅 DevTools 中的事件。该文档指出以下内容:
eventName:String - 事件的全名,格式为 {domain}.{event}。 有关 DevToolsProtocol 事件描述和事件参数的更多信息,请导航到 DevTools 协议查看器。
...根据DevTools 协议查看器,我正在寻找的事件是Log.entryAdded。
现在的问题是,虽然GetDevToolsProtocolEventReceiver("Log.entryAdded")
调用不会引发任何异常,但事件永远不会引发,即使我可以看到 DevTools 中记录的内容。console.log()
我什至尝试在 DevTools 窗口中编写自己的调用。
我尝试过的其他事情:
- 使用在机器上安装 WebView2 的 Evergreen 独立安装程序或基本上是 WebView2 的便携式版本的固定版本(87 和 88 版本)
- 使用来自 NuGet 的 Microsoft.Web.View2.Core.dll 的最新稳定版本 1.0.705.50 和最新的预发布版本
- 同时使用 Log.entryAdded 事件和 Console.messageAdded(已弃用)
- 打开 DevTools 窗口后订阅事件
那么我做错了什么?
google-chrome-devtools - Chrome DevTools:Network.loadingFinished 和 Network.dataReceived 事件有什么区别?
我想知道:
- Network.loadingFinished事件的目的是什么?当文档说“HTTP 请求完成加载时触发?”时,文档到底是什么意思?
- 此事件与请求的最后一个 Network.dataReceived事件有何不同?
起初,我的印象是 Network.loadingFinished 事件标志着特定请求的加载时间结束,其中“加载时间”定义为接收到最后一个有效负载数据包的时间。但是,如果这是真的,那么 Network.loadingFinished 的时间戳和最后一个 Network.dataReceived 的时间戳将相等;然而,事实并非如此。
这是一个示例,其中最后一个 Network.dataReceived 事件的时间戳大于 Network.loadingFinished 事件的时间戳:
这是相反情况的一个例子:
chrome-devtools-protocol - 为什么找不到 Network.enable?
这是我通过 WebSocket 收到的消息。当我发送此消息时:
...它回复:
它也这么说'Page.navigate'
。
google-chrome-extension - 从 chrome devtools 扩展将调试器附加到工作人员
我试图在我的 chrome devtools 扩展中拦截 ws 消息。
这个问题帮助了我。这正是我所需要的,但唯一的问题是它只有在从页面上下文发送 websocket 消息时才有效(我猜是因为调试器专门附加到该选项卡?)但在页面中我试图拦截ws 连接的消息是在 web worker 中建立的。
我的主要问题是,chrome devtools 扩展中有没有办法将调试器“附加”到网络工作者?或者我在这里遗漏了什么?
谢谢你的帮助。