单击C#WebBrowser上的链接以开始下载文件及其链接

时间:2013-08-22 07:10:10

标签: c# click webbrowser-control

我正在使用C# WebBrowser导航到某个页面。 导航到该页面后,我从源代码中提取一些链接,然后开始导航到我从其父URL获取的循环中的那些子链接。

在每个子链接上都有一个类似的链接:

    <a onclick="sysMT('SYSext.Sup_Filetype','type','SYSext.Sup_Filename','Filename.exe','SYSext.Sup_Referer','http://abc.com');"
id="ctl00_UCDownloadFile1_Accept" 
href="javascript:__doPostBack('ctl00$UCDownloadFile1$Accept','')">Accept</a>

按钮的id "ctl00_UCDownloadFile1_Accept"在其所有子链接中都是相同的。 当我手动点击上面的链接时,文件开始下载。 我想使用c#代码在上面的按钮上"click"。 我可以在click上使用此代码webBrowser1_DocumentCompleted event上方的按钮:

HtmlElement elementById = webBrowser1.Document.GetElementById("ctl00_UCDownloadFile1_Accept");
            if (elementById != null)
            {
                elementById.InvokeMember("click");
                Application.DoEvents();
            }

但是出现了一个脚本错误消息框

"An error has occured in the script on this page. 
Error: The value of the property 'sysMT' is null or undefined, not a Function object.
Do you want to continue running script on this page? 
Yes     NO"

无法理解我在此遗漏的内容。父网址是否制作了一些有助于下载文件的cookie?不知道如何下载该文件,也下载文件链接。

我是C#WebBrowser的新手。

  

更新

我可以使用

删除脚本错误消息框
webBrowser2.ScriptErrorsSuppressed = true;

但是无法下载子链接中的所有文件,例如

如果我从父网址获得3个链接,那么我导航到第一个链接,点击接受链接,然后出现一个框,要求对RUN SAVE CANCEL.采取行动 但我只为第三个(最后一个)链接获得此框。 如何解决这个问题,我想从每个链接下载所有文件而没有任何提示,要求RUN SAVE CANCEL.直接SAVE一个文件。

0 个答案:

没有答案