当前位置:编程学习 > C#/ASP.NET >>

如何利用c# webbrowser获得脚本执行后的html代码

在应用过程中使用webbrowser浏览一个网页,单击该网页上某个按钮的时候执行了脚本弹出了个层对话框

用FireBug发现是新增加了一堆html代码

由于这个层上有个关闭按钮我需要去操作

通过GetElementById无法获得这个按钮

求教 --------------------编程问答-------------------- 顶一下 --------------------编程问答-------------------- 继续顶一下,有高手在吗 --------------------编程问答-------------------- 我也需要这个功能,知道了通知我一下哈

研究一下Firebug 和 IE Inspector.. --------------------编程问答-------------------- 刚帮忙解决了一个类似的问题:

http://topic.csdn.net/u/20120820/10/f2f21a45-5395-4cef-8d08-34e2022be8f1.html


 System.Timers.Timer timer = null;

        private void Form1_Load(object sender, EventArgs e)
        {
            string url = "http://stock.finance.sina.com.cn/hkstock/finance/01398.html";

            webBrowser1.Navigate(url);
            timer = new System.Timers.Timer(1000);
            timer.AutoReset = false;
            timer.Elapsed += new System.Timers.ElapsedEventHandler(Timer_Elapsed);
            
        }

        public delegate void GetDataHandler();

        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            Invoke(new GetDataHandler(getData));

            timer.Start();
        }


         private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //避免webbroswer.DocumentCompleted被多次引发
            if ((e.Url != webBrowser1.Url) || (webBrowser1.ReadyState != WebBrowserReadyState.Complete))
                return;
            //下面写你要在页面加载完毕后执行的代码。

            getSelectedCtrl();
        }

        private void getSelectedCtrl()
        {
            System.Windows.Forms.HtmlDocument doc = this.webBrowser1.Document;
            System.Windows.Forms.HtmlElementCollection selectCtrls = doc.GetElementsByTagName("select");
            string attName;

            foreach (System.Windows.Forms.HtmlElement selectCtrl in selectCtrls)
            {
                attName = selectCtrl.GetAttribute("table");
                if (attName.Equals("tableGetBalanceSheet"))//如果table属性是资产负债表的话,模拟引发“报表类型”的选择控件
                {
                    foreach(HtmlElement option in selectCtrl.Children)
                    {
                        if(option.GetAttribute("value") == "zero")
                        {
                            option.SetAttribute("selected", "selected");
                            break;
                        }
                    }
                    selectCtrl.RaiseEvent("onchange");
                    timer.Start();
                    return;

                }

            }

        }
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,