;//调试端口,一会程序启动后,需要访问这个端口
Cef.Initialize(_settings);
如果在其他地方配置时会报(暂时还没找到原因...):
CEF can only be initialized once per process. This is a limitation of the underlying CEF/Chromium framework. You can change many (not all) settings at runtime through RequestContext.SetPreference.
这时启动程序,不出意外的话,直接访问: {ip}:{port}(localhost:32999):
和chrome的远程调试页面比,要简陋一点点....
页面中列出浏览器端(CefSharp)当前打开了几个网页,打开开发者工具,切换到ws标签,在点进网页的同时,会发现建立了一个websocket长连接,每一个网页都有属于自己的一个websocket链接地址。
注意: 一定要点进网页前打开开发者工具开始监听websocket,点进页面后,在打开开发者工具监听就晚了,因为websocket是长连接,在一次通信过程中,只会建立一次链接,如果在建立链接时没有打开开发者工具开启监听,ws标签下就一直不会有websocket实时通信内容..
手动调用CDP接口:
访问 {ip}:{port} (localhost:32999) / json 获取websocket链接:
或者通过DOM.getDocument获取百度页面标签内容(包含iframe嵌套iframe,没有同源限制,可以获取所有标签内容):
DOM.getDocument
获取网页文档层级结构.
depth[可选]: integer (递归检索子节点深度,默认为1)
pierce[可选]:boolean(是否遍历iframes下内容(个人理解,可能有误,请参照谷歌官网文档),默认为false)
root: Node对象
在执行DOM、Page.等其他模块时,最好先执行DOM.enable开启模块代理(看开发者工具在打开页时,总是先enable一堆模块...)
希望对你有帮助...୧(﹒︠ᴗ﹒︡)୨