C# webbrowser开发指南

全篇引用单元mshtml;

      路径:C:\windows\assembly\GAC\Microsoft.mshtml\7.0.3300.0__b03f5f7f11d50a3a\Microsoft.mshtml.dll  //不同的版本路径不同


一、如何用Webbrowser获取网页的全部源代码

       1.不含框架 

         string s= WB1.DocumentText;

       2.含有框架

        IHTMLDocument2 doc=WB1.Document.DomDocument as IHTMLDocument2;
        IHTMLFramesCollection2 frames=doc.frames as IHTMLFramesCollection2;
        int i_frame=0;  //第1个框架
        IHTMLWindow2 frame=frames.item(ref i_frame) as IHTMLWindow2;
        IHTMLDocument2 doc2=frame.document as IHTMLDocument2;
        IHTMLDocument3 doc3=frame.document as IHTMLDocument3; 

        strings = doc2.body.innerHTML;

二、webbrowser如何获取网页的元素

       1.根据元素ID

        HtmlElement ele= WB1.Document.GetElementById("ID");


        2.根据元素Name

         HtmlElement ele= WB1.Document.All["Name"];


        3.无ID无Name的元素

           3.1  webbrowser遍历网页元素:

       HtmlDocument doc=WB1.Document;

      HtmlElementCollection elements=doc.All;

      foreach(HtmlElement element in elements)

      {

        if (element.GetAttribute("innerText") == "提交回答") //元素的innnerText属性为“提交回答”

        {

            element.InvokeMember("Click");  //模拟点击

            break;

        }

      }  

           3.2 webbrowser   根据元素的Tag遍历(input,a,img,span,li,div等)

           input: 所有可输入的类型,例如文本框、勾选框、复选框、下拉列表、图片等

           a:          A标签,可以带超链接

           img:   图片类型

          span:    SPAN类型

          li:           下拉列表,列表框等

         div:         DIV      


           HtmlElementCollection  eles = WB1.Document.GetElementsByTagName("a") as HtmlElementCollection;
            foreach (HtmlElement ele in eles)
            {
                if (ele.GetAttribute("href") != null)
                if (ele.GetAttribute("href") == "A标签的超链接") 
                {                    
                    element.InvokeMember("Click");  //模拟点击
                    break;
                }
            }    

          3.3 根据元素的索引序号

            HtmlElement ele=WB1.Document.All[0];  //第1个元素

            HtmlElement ele=  WB1.Document.GetElementsByTagName("input")[0];  //第一个inuput类型的元素

         3.4 根据已知元素获取未知元素




C# webbrowser开发指南

上一篇:c#.net常见字符串处理方法


下一篇:Java中对话框的弹出