模拟网页浏览器
我们的任务基本上是模拟一个浏览器来获取网页,目的是自动化测试不同的网页。这将用于(理想情况下)在后台运行的控制台应用程序,并生成报告。
我们尝试使用.NET和WatiN库,但这个库是基于一个被封装的IE浏览器,因此缺少很多功能。为了实现这些功能,我们不得不调用一些不受管理的本地代码,但最终发现IE浏览器既不安全,也不稳定,很多需要的功能只能通过修改注册表来实现,这样做非常不灵活。
- 支持代理
- 支持JavaScript - 我们需要能够在任何JavaScript执行后解析实际的DOM(希望能有事件来处理任何ajax调用)
- 能够将加载页面的缓存中的整个内容(包括图片)保存到一个单独的位置
- 能够清除cookies/缓存,获取cookies/缓存等
- 能够设置请求头和修改任何浏览器调用的POST数据
- 理想情况下,进程和/或线程安全
- 还有,求求你们,提供一个不那么复杂的API
可以接受的编程语言有C++、C#、Python,任何可以做成简单的后台应用程序的语言,语法不要太“非主流”,像Ruby就不太行。
根据我自己的研究,虽然我搜索的能力很差,但我听说WebKit的评价不错……请问Qt模块QtWebKit能否满足这些功能?
3 个回答
1
我最近才开始研究这个,所以不能保证它能满足你列出的所有需求,但你可以看看 GeckoFx。
根据网站上的介绍:GeckoFX是一个开源组件,它可以很方便地把Mozilla的Gecko(也就是Firefox)嵌入到任何.NET的Windows窗体应用程序中。它是用干净、注释齐全的C#编写的,GeckoFX是默认的基于Internet Explorer的WebBrowser控件的完美替代品。
至于我个人的感受:在性能和稳定性方面,它远远超过了默认的.NET WebBrowser。