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了
posted @ 2009-06-10 21:57  随便取个名字算了  阅读(1722)  评论(2编辑  收藏  举报