A-A+
WebBrowser介绍
WebBrowser是一个.NET控件,一般用于在Winform中显示目标网页。
Navigate方法是最常用的方法,它可以将指定位置的文档加载到WebBrowser 控件中,加载完毕后会触发DocumentCompleted事件。示例代码如下:
- private void btnGo_Click(object sender, EventArgs e)
- {
- webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
- webBrowser1.Navigate("http://www.baidu.com");
- }
- void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
- {
- }
WebBrowser通常被用来定制浏览器,其实我个人认为其更加适合于自动化测试和数据采集工作。WebBrowser可以模拟表单的自动提交,如果需要频繁的进行回归测试或者按照一定的流程规则进行测试,用WebBorwser会节省大量的劳动时间,比如模拟表单登录:
- HtmlElement btnSubmit = webBrowser.Document.All["submitbutton"];
- HtmlElement tbUserid = webBrowser.Document.All["username"];
- HtmlElement tbPasswd = webBrowser.Document.All["password"];
- if (tbUserid == null || tbPasswd == null || btnSubmit == null)
- {
- return;
- }
- tbUserid.SetAttribute("value", "admin");
- tbPasswd.SetAttribute("value", "123456");
- btnSubmit.InvokeMember("click");
WebBrowser也可以用于数据采集工作。目前互联网的前端页面越来越重视人工体验,同时随着Ajax的流行,大量的动态异步脚本充斥于页面中。如果使用HttpWebClient来获取目标页面,一般无法获得我们所需的数据,比如:异步加载的评论信息,随着滚动条滚动加载的数据信息等。此时最简单的办法是,可以先使用WebBrowser渲染页面,然后通过托管Html类获取所需信息。可以参考此网址:http://www.cnblogs.com/finallyliuyu/archive/2010/11/02/1866966.html。不过使用WebBorwser进行数据采集工作效率偏低,但是实现一些小型的项目需求则完全可以胜任,并且技术门槛较低。