我正在使用 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
文件。