尝试在渲染后访问页面的DOM。我不需要查看页面并计划在没有任何GUI或交互的情况下以编程方式应用此页面。
我对后期渲染感兴趣的原因是我想知道对象出现的位置。一些位置信息以HTML编码(例如,通过offsetLeft),但事实并非如此。此外,Javascript可以改变最终的定位。我想要的位置尽可能接近用户看到的位置。
我查看了Chromium代码并认为有一种方法可以做到这一点,但没有足够的文档可以开始。
把它非常只是我对这样的伪代码感兴趣:
DOMRoot *r = new Page("http://stackoverflow.com")->getDom();
关于起点的任何提示?
答案 0 :(得分:5)
您应该使用Chromium公开的Web API包装器;具体来说,WebDocument类包含您需要的功能。你可以这样称呼它:
WebFrame * mainFrame = webView->mainFrame();
WebDocument document = mainFrame->document();
WebElement docElement = document->docElement();
// Manipulate the DOM here using docElement
...
You can browse the source code for Chromium's Web API wrapper here.虽然文档的方式不多,但标题文件的评论相当充分,您可以浏览Chrome的源代码以查看API的实际效果。
很难开始使用Chromium。我建议查看test_shell application。此外,像Chromium Embedded Framework(CEF)这样的框架简化了在应用程序中嵌入Chromium的过程。我在目前的项目中使用CEF,我对它非常满意。