2011-12-27 32 views
12

今天,我一直在互联网上跳来跳去,在阅读了很多解决方案后,我决定编写一个Chromium包装器将是一个有趣的学习体验;更何况这对我目前正在进行的几个项目来说是值得的。为Chromium编写一个托管包装

我知道那里已经有一些包装(awesomium,berkelium),更不用说一些基本教程like this one,但我正在编写我自己的包装。

我这样做的主要目的是为了能够创建和访问由WebKit生成的用于C#的DOM结构,无论是在HTML所依赖的任何JavaScript运行之前还是之后。我知道我可以考虑使用HTMLAgilityPackMajestic12进行HTML解析,但我期望在经过验证的引擎上构建一些快速,高效的引擎,并且将在可预见的未来积极开发。 WebKit是一个积极开发的布局引擎,嵌入到一些最流行的浏览器中,而V8是一款令人印象深刻的JavaScript引擎,因此决定使用Chromium。

看到我不关心实际渲染任何内容,而是寻找访问网页的结构,我觉得嵌入WebKit的整体可能是矫枉过正。即使在我希望JavaScript改变DOM的情况下,我仍然没有用于渲染结果。

总结

所有我真正从铬想要的是创建一个web页面的DOM的能力,以及(可选)运行使用Chromium的令人印象深刻的V8引擎进一步处理,上述页的脚本能力DOM。我知道这将是一项艰巨的任务,但我很有兴趣看看你有什么要说的。 简而言之,有人与WebKit和V8(可能通过Chromium)合作,谁可以评估这种可行性并借给我他们的专业知识(通过如何解决这个问题的建议)?我知道我最终可以确定一个适当的方法来处理这个问题,但我期望加快这一过程。或者是一个相对简短而又甜美的高级别“这就是我要做的事”,这就是我正在寻找的东西(也就是我不需要任何太过花哨的东西)。

我希望我所要求的不是太疏离。如果你发现它太笼统了,想要关闭这个话题,不要这样做,请发表评论,我会尽量缩小焦点。正如我刚才所说,自从我感冒了以后,我的思维在今天四处跳动。

+3

这真的不是在这样的事情上招募援助的地方。如果你有问题,你扩大你的答案的能力,目前这个问题的答案是非常特定的。 – 2011-12-27 19:45:23

+1

@Rhhound我不想找人为我写这篇文章。我只是在寻找有更多经验与这些项目合作的人的建议。另外,我不确定我是否理解你想说的话,如果你有问题,你扩展了获得答案的能力,目前这个问题的答案是非常特殊的[原文如此]。' – JesseBuesking 2011-12-27 20:25:37

+4

你正在讨论创造http://www.phantomjs.org/? – 2012-01-29 22:40:03

回答

0

我使用Selenium WebdriverChromeDriver进行自动脚本,网页和验收测试。 Easy to set upeasy to use

这个想法是,你可以使用这个现有的接口,但change the path to the Chrome executable with ChromeOptions.BinaryLocation。尝试将其指向WebKit的一个现有无头版本,如WebKitDriver - 它可能正常工作。

我们的目标可能不同,但我会对自己的无头版本感兴趣。在我的开发机器上进行测试时,它不那么突兀,我在测试失败时已经采用了自动截图。

1

我在同一路径上。我正在深入探索QtWebKit,并且在PhantomJs上完成了这个Selenium,并且在我的测试中像一个魅力一样工作。

当您使用QtWebKit时,作为WebKit的驱动程序,您并不那么容易。