C#实现自动填表
如果有个如下index.tml文档:
<html>
<body>
<FORM name="f" action="http://www.baidu.com/s?wd=">
<INPUT id="kw" name="wd" >
<INPUT id="sb" value="搜索" type="submit">
</FORM>
</body>
</html>
代码实现:
窗体装载事件中写入后面这条语句: webBrowser1.Navigate(@"*:\*\index.html");
在webBrowser1_DocumentCompleted事件或按钮事件中写入下面语句:
HtmlDocument doc = webBrowser1.Document; //获取document对象
HtmlElement btn = null;
foreach (HtmlElement em in doc.All) //轮循
{
string str = em.Id;
if ((str == "kw") || str == "sb") //减少处理
{
switch (str)
{
case "kw": em.SetAttribute("value", "自动填表"); break; //填表
case "sb": btn = em; break;
default: break;
}
}
}
webBrowser1.Document.All["sb"].InvokeMember("Click");//提交 , 或 下面语句
//btn.InvokeMember("click"); //触发submit事件
//因为submit不是C#提供的常用的已注册事件,所以不能够通过RaiseEvent直接调用。
//通过AttachEventHandler("submit",new EventHandler(fun))给form添加事件处理函数fun,
//然后在fun中用InvokeMember方法调用页面中的响应函数,不过这样可能就不能
//submit页面到form的action定义的url了
<html>
<body>
<FORM name="f" action="http://www.baidu.com/s?wd=">
<INPUT id="kw" name="wd" >
<INPUT id="sb" value="搜索" type="submit">
</FORM>
</body>
</html>
代码实现:
窗体装载事件中写入后面这条语句: webBrowser1.Navigate(@"*:\*\index.html");
在webBrowser1_DocumentCompleted事件或按钮事件中写入下面语句:
HtmlDocument doc = webBrowser1.Document; //获取document对象
HtmlElement btn = null;
foreach (HtmlElement em in doc.All) //轮循
{
string str = em.Id;
if ((str == "kw") || str == "sb") //减少处理
{
switch (str)
{
case "kw": em.SetAttribute("value", "自动填表"); break; //填表
case "sb": btn = em; break;
default: break;
}
}
}
webBrowser1.Document.All["sb"].InvokeMember("Click");//提交 , 或 下面语句
//btn.InvokeMember("click"); //触发submit事件
//因为submit不是C#提供的常用的已注册事件,所以不能够通过RaiseEvent直接调用。
//通过AttachEventHandler("submit",new EventHandler(fun))给form添加事件处理函数fun,
//然后在fun中用InvokeMember方法调用页面中的响应函数,不过这样可能就不能
//submit页面到form的action定义的url了