Rupert

::Me(C#,VC,MonoTouch,MonoforAndroid);

导航

webbrowser这个控件上的研究

Posted on 2012-11-14 15:53  ArRan  阅读(191)  评论(0编辑  收藏  举报

好久没有写过日志了,今天写一点自己在webbrowser这个控件上的研究。前前后后断断续续研究过这个控件很久,无非是想做个自动点击的工具,本人编程底子薄,纯粹也就是自己自娱自乐吧。

首先页面:http://weibo.com/u/2546043520 (不一定可以访问到)

加关注那个按钮的html代码是:

<a class="W_btn_b" title="加关注" action-type="follow" action-data="uid=2546043520&amp;fnick=黄力勋弘贵" href="javascript:void(0);"><span><img class="icon_add addbtn_g" src="http://img.t.sinajs.cn/t4/style/images/common/transparent.gif"><em class="vline"></em><img src="http://img.t.sinajs.cn/t4/style/images/common/transparent.gif" class="icon_add addbtn_b">加关注</span></a>

============

建议大家用chrome来分析网页的元素代码。

这个按钮没有ID,也没有name,所以不是特别好处理,所以我的思路是遍历所有的元素,然后根据其他项来匹配到这个按钮。如果有ID,或者name就可以用这个方法: webBrowser1.Document.GetElementById("login_submit_btn")

 

我的代码:

 

 private void button1_Click(object sender, EventArgs e)

        {

            HtmlDocument document = this.webBrowser1.Document;//获取控件中的html文档,类似于网页中的document对象。

            HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("a");//根据标签<a>来遍历元素。

            foreach (HtmlElement em in elems)                   //遍历所有元素

            {

                if (em.GetAttribute("title") == "加关注")       //根据title来匹配,因为加关注只有一个按钮

                {

                    em.InvokeMember("click");

                }

            }

        }

=================

 

其他的类似没有ID,没有name都可以按照这样的方法来处理。