WebBrowser关闭文件下载对话框

WebBrowser关闭文件下载对话框

问题描述:

我正在用windows.Forms.WebBrowser c#下载文件,运行InvokeScript之后,并获取我的文件我使用Application.DoEvents向前移动到我的下一个文件,但下载对话框保持打开状态,我被卡在Application.DoEvents上,无法做任何事情。WebBrowser关闭文件下载对话框

如何取消或关闭此下载对话框?

我的代码:

 HtmlElement head = webBrowser.Document.GetElementById("btnExcelExport"); 
    HtmlElement scriptEl = webBrowser.Document.CreateElement("script"); 
    IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; 
    element.text = "function DownloadFile() {$('#btnExcelExport').click()}"; 
    head.AppendChild(scriptEl); 
    webBrowser.Document.InvokeScript("DownloadFile"); 

    HtmlElementCollection iFrames =  webBrowser.Document.GetElementsByTagName("iframe"); 
       for (int i = 0; i < iFrames.Count; i++) 
       { 
        string src = iFrames[i].GetAttribute("src"); 
        if (src.Contains("Export")) 
        { 
         txt_url.Text = "https://test.com" + src; 

         string cooki = webBrowser.Document.Cookie; 
         int response = URLDownloadToFile(0, "https://test.com" + src, @"C:\temp\Test.txt", 0, 0); 

        } 

       } 
       Application.DoEvents(); 
//....got to next file 

我倒知道错了我的问题,为什么我得到了利率,但无论如何,我发现这个解决方案。

你需要使用哟导航事件,有检查的是你在下载的网址使用取消下载“e.Cancel =真正的”

private void webBrowser_Navigating(object sender,WebBrowserNavigatingEventArgs e) 
     { 

      if (e.Url.ToString().Contains("Download")) 
      { 
       e.Cancel = true; 
      } 
      }