0

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

在每个 sub_links 上都有一个链接,如下所示:

    <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"在其所有 sub_links 中都是相同的。当我手动单击上面的链接时,文件开始下载。我想"click"使用 c# 代码在上面的按钮上。我可以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"

无法理解我在这方面缺少什么。父 url 是否制作了一些有助于下载文件的 cookie?不知道如何下载该文件以及下载文件链接。

我是 C# WebBrowser 的新手。

更新

我可以使用删除脚本错误消息框

webBrowser2.ScriptErrorsSuppressed = true;

但无法下载子链接中的所有文件,即

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

4

0 回答 0