https://blog.csdn.net/SuperweiBluecat/article/details/106058849
ide中使用 附加调试
菜单 : run -> attach to process
选择 最小的 pid 不行点红色选另外一个 我用的CEF4 会启动2个进程
程序启动参数设置 --renderer-startup-dialog --no-sandbox
1生成的应用程序创建快捷方式,追加参数--renderer-startup-dialog --no-sandbox
- 双击快捷方式启动,程序会弹出一个对话框提示Render进程的进程ID
- 使用VS的 附加到进程 功能选择上一步弹窗中的进程ID相同的进程附加
- 点击第二步弹出的对话框上的确定,等待页面加载完成,断点就会命中,DOM获取成功。
注意这个类的方法只能在Renderer进程的主线程上调用(TID_RENDERER)。
结合对HTML DOM节点的理解以及上面的代码,就能理解我们能使用CefDOMNode做什么:
- 使用IsXXX或GetType判断节点类型
- 使用GetNextSibling、GetPreviousSibling遍历兄弟节点
- 如果是Text节点(叶子节点),SetValue可以改变其文本
- 如果是Element节点,可以使用GetFirstChild、GetLastChild获取孩子,使用SetElementAttribute(s)改变属性,使用GetElementAttibute(s)获取属性
HTML DOM中的Element,有appendChild、insertBefore等方法,可以很方便地动态插入节点改变DOM和网页展示效果,而这个CefDOMNode就没有相应的方法,好像不太方便……
CefDOMVisitor
要访问或修改HTML DOM,就必须实现这个类,然后将其对象传递给CefFrame::VisitDOM(CefRefPtr visitor)方法,最后你的Visit方法就被调用来访问或修改HTML DOM。
http://www.itboth.com/d/iAjqym/cef-html-dom-chromium
https://blog.csdn.net/foruok/article/details/50799518
https://blog.csdn.net/foruok/article/details/50573612
https://blog.csdn.net/foruok/article/details/50584985
https://blog.csdn.net/jfdfhh/article/details/84083360
https://blog.csdn.net/foruok/article/details/50780333
https://blog.csdn.net/foruok/article/details/2256094
https://blog.csdn.net/foruok/article/details/17715969