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