0

目标

  • 我正在尝试使用初始化后获取特定 ChromiumWebBrowser 对象的远程调试 URLnew ChromiumWebBrowser(...)

申请信息

  • 我的应用程序在运行时创建了多个ChromiumWebBrowser 工作实例,实例的数量因工作负载而异。它们都导航到一些 URL 并在站点上执行任务(单击按钮、填充输入、收集值)。如果工作人员在执行操作后发现意外结果(找不到具有给定 id 的 div 元素),它会向用户发送通知并分发它的远程调试 URL,该 URL 允许用户控制工作人员并调查问题所在过程中。

问题

  • 我不知道如何获取特定ChromiumWebBrowser对象的远程调试 URL
  • ChromiumWebBrowser例如,如果 URL 变量可以在下面的代码块中简单地实例化,但类没有这样的属性(RemoteDebuggingUrl) ,那就太好了。

    ChromiumWebBrowser worker1 = new ChromiumWebBrowser(...);

    字符串 URL = worker1.RemoteDebuggingUrl;

努力

我决定深入研究CefSharp的源代码,以了解远程调试服务器如何根据每个ChromiumWebBrowser基础创建链接,例如,我假设它可能正在访问ChromiumWebBrowser对象 ID 之类的属性,因为远程调试主页中的浏览器链接(通过http 访问: //localhost:8088 ) 就像下面的 url ;

http://localhost:8088/devtools/inspector.html?ws=localhost:8088/devtools/page/FA54735587998EFD141A2300AE57F70C

FA54735587998EFD141A2300AE57F70C ”部分是远程调试链接的ID,如http://localhost:8088/json

[
  {
    "description": "",
    "devtoolsFrontendUrl": "/devtools/inspector.html?ws=localhost:8088/devtools/page/FA54735587998EFD141A2300AE57F70C",
    "id": "FA54735587998EFD141A2300AE57F70C",
    "title": "Sign In",
    "type": "page",
    "url": "https://af.sts.mapfre.net/adfs/ls/?SAMLRequest=hZJda8IwFIb%2FSsm9TVvFj9AKtk4Q3BDddrGbEeopBpqkyzl1279fWnFzF3NXgZPzJs9zkhSlrhuxaOlodvDWAlLwoWuDot%2FIWOuMsBIVCiM1oKBS7Bf3G5GEkWicJVvaml1FbickIjhS1rBgvczYa5zP8tE0XxXjPJrdjYer8SiaTIplnAxXwyguWPAMDn1%2FxnzchxBbWBskaciXong2iJNBMn6MExFNxTB5YcHSOygjqU8diRoUnMsqRMJQy6ZyEBogLg8V8ho5CwprELrzbpGX5yZRts75daB0U6tSEQtW1pXQDzBjlawROsytN1Un%2BK4sLuLdZa0Gtwd3UiU87TY%2FkJ7uQlhaHZLjGuraGt5YpB1g0zGwedrNWfSjcPM%2Fsym%2FbkvP7%2FzgvdbLrfXonx24lv9odxV1GFR9qyAnDSqv74U82HvhQJKXJNcC4%2FPzlb9%2F0%2FwL",
    "webSocketDebuggerUrl": "ws://localhost:8088/devtools/page/FA54735587998EFD141A2300AE57F70C"
  }
]

最后我无法使用 Visual Studio 2019 导航到以下符号的实现

bool CefInitialize(const CefMainArgs& args,
                   const CefSettings& settings,
                   CefRefPtr<CefApp> application,
                   void* windows_sandbox_info);

旨在了解远程调试服务器的工作原理。我在“ cef_app.h ”头文件中找到了这个符号,它是cef-sdk.75.1.14 Nuget 包的一部分。我试图找到这个符号的实现,因为我认为它是远程调试服务器的入口点,因为它需要CefSettings包含在我的例子RemoteDebuggingPort中是8088的参数。

4

0 回答 0