日期:2014-05-17  浏览次数:20418 次

c#如何实现模拟点击按钮提交网页,并下载点击后自动生成的Excel文件
我要批量下载一个网站的Excel文件。但这个Excel文件是要先点击网页上的ButtonSummit按钮,提交后,才会自动生成。

按钮的提交操作我已实现了,具体代码如下:
  private void button2_Click(object sender, EventArgs e)
        {
            webBrowser1.ScriptErrorsSuppressed = true;
            webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted1);
            webBrowser1.Navigate("http://www.测试.com/generate.aspx"); //打开目标URL
        }

        private void webBrowser1_DocumentCompleted1(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (e.Url != webBrowser1.Document.Url) return;
            HtmlDocument doc = webBrowser1.Document; //获取document对象
            HtmlElement btn = null;
            foreach (HtmlElement em in doc.All) //轮循
            {
                string str = em.Name;
                if ((str == "submit")) //减少处理
                {
                    btn = em;
                    break; //获取submit按钮

                }
            }
            if (btn != null)
                btn.InvokeMember("click"); //触发submit事件
     
        }

但是,它生成的EXcel我不知道怎么实现自动下载了。
现在运行后,会自动弹出下载框,需要手工点击保存。

哪位高手研究过这种模拟提交、并下载提交后生成的文件的操作?

------最佳解决方案--------------------
沙发,顶下!

------其他解决方案--------------------
ding!!
------其他解决方案--------------------
学习!!!!
------其他解决方案--------------------
怀疑可能性,网页都有权限问题的
------其他解决方案--------------------
引用:
怀疑可能性,网页都有权限问题的


这个根本和权限无关!
------其他解决方案--------------------
你现在需要做的就是屏蔽EXCEL下载弹出框

上次看到类似的 但是感觉这样很不安全啊

万一是木马咋办。?
------其他解决方案--------------------
放弃吧,弹出下载窗口后,自己写的代码是不可能控制这个弹出窗口的,除非自己写Activex来处理下载,要不然就用外部程序来实现,比如像按键精灵之类的软件