webBrower控件实现winform和webpage交互
要求:
dom基础+javascript脚本
应用:
自动填充webform
抓取webpage数据
 
添加WebBrowser控件
WebBrowserprivate WebBrowser webBrowser1;
引用页面的document对象
WebBrowserHtmlDocument doc = webBrowser1.Document;//get web document
有了document对象,就可以像js一样操作doc,访问页面的所有对象。
WebBrowserHtmlElementCollection htmlElements = webBrowser1.Document.GetElementsByTag("input");//get all input elements
WebBrowser
//access every input element in web form
WebBrowser
foreach (HtmlElement el in htmlElements)
       }
winForm调用webpage的函数
webPage调用winForm方法
WebBrowser//winform code
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]//    
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
//This property lets you integrate dynamic HTML (DHTML) code with your client application code
WebBrowser
public partial class Form2 : Form
>

要调用winform的方法,这两个属性是必须的
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]  
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
还有必须设置webBrowser1.ObjectForScripting = this,被调用的方法是public的。
有了上面这些准备要实现一些简单应用就很简单啦,不妨自己动手试试。
实例一
下面结合一个简单例子,使用webbrowser自动登录。
先分析webform的结构,下面这个登录页面包括两个输入框:用户名和密码,以及一个登录按钮。

WebBrowser<HTML>
WebBrowser    
<HEAD>
WebBrowser        
<title>test html</title>        
WebBrowser    
</HEAD>
WebBrowser    
<body background="/bugnet/graphics/back2.gif">
WebBrowser        
<form name="mainform" method="post" action="bugl_login.aspx" id="mainform" >
WebBrowser            
<b>Enter name</b><input id="uid" type="text" maxLength="50" size="25" name="uid"><br>
WebBrowser            
<b>Enter Password</b><input type="password" maxLength="20" size="25" name="pwd">
WebBrowser            
<input type="submit" value="go" name="go">
WebBrowser        
</form>
WebBrowser    
</body>
WebBrowser
</HTML>

在页面载入webbrowser之后,程序自动填充用户名和密码,触发登陆按钮。

WebBrowser private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
              }

自动登录就这样实现,利用这些可以完成一些重复登录工作,还可以使用来自动化测试webpage程序。

实例二
抓取页面数据,下面的页面有一个表格,如何把里面的数据提取出来?
 WebBrowser
看看页面DOM结构,一个table,三行两列
WebBrowser<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
WebBrowser
<HTML>
WebBrowser 
<HEAD>
WebBrowser  
<TITLE> New Document </TITLE>
WebBrowser  
<META NAME="Generator" CONTENT="EditPlus">
WebBrowser  
<META NAME="Author" CONTENT="">
WebBrowser  
<META NAME="Keywords" CONTENT="">
WebBrowser  
<META NAME="Description" CONTENT="">
WebBrowser 
</HEAD>
WebBrowser
WebBrowser 
<BODY>
WebBrowser  
<TABLE border=1>
WebBrowser  
<TR>
WebBrowser    
<TD>name</TD>
WebBrowser    
<TD>age</TD>
WebBrowser    
<TD>score</TD>
WebBrowser  
</TR>
WebBrowser  
<TR>
WebBrowser    
<TD>agan</TD>
WebBrowser    
<TD>18</TD>
WebBrowser    
<TD>99</TD>
WebBrowser  
</TR>
WebBrowser   
<TR>
WebBrowser    
<TD>asca</TD>
WebBrowser    
<TD>18</TD>
WebBrowser    
<TD>88</TD>
WebBrowser  
</TR>
WebBrowser  
</TABLE>
WebBrowser 
</BODY>
WebBrowser
</HTML>
了解这个表格结构就可以开始导入到winform中的DataTable中,然后在DataGridView中展示出来
WebBrowser private DataTable ImportToDataTable()
        }
例子对导入的数据简单的以string来处理,其实可以做一些深入处理,比如使用正则表达式识别不同的数据类型,希望这个例子能起到抛砖引玉的作用。

相关文章:

  • 2022-12-23
  • 2022-01-26
  • 2022-12-23
  • 2021-09-27
  • 2022-03-02
  • 2021-12-25
  • 2021-07-14
  • 2021-09-03
猜你喜欢
  • 2021-06-15
  • 2021-10-31
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案