我正在使用WebKitDotNet来模拟和自动化网络浏览器。这真的很漂亮,并且在大多数方面都有效。但是,当我尝试实现此代码时,WebKit不会触发下载:
WebKitBrowser _b = null;
private void button1_Click(object sender, EventArgs e)
{
_b = new WebKitBrowser();
_b.DownloadBegin += new FileDownloadBeginEventHandler(b_DownloadBegin);
_b.Error += new WebKitBrowserErrorEventHandler(_b_Error);
_b.AllowDownloads = true;
_b.Navigate("http://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/download");
}
void _b_Error(object sender, WebKitBrowserErrorEventArgs e)
{
MessageBox.Show("error!");
}
void b_DownloadBegin(object sender, FileDownloadBeginEventArgs e)
{
MessageBox.Show("hi");
}
“错误”和“DownloadBegin”事件都不会触发。我希望他们中至少有一个能这样做 - 有没有我缺少的设置?
编辑:我知道这是一个老问题,但这是更新。当我写这个问题时,我试图自动化一个需要人类的过程 - 每天一次 - 登录网站,提供凭据,然后单击下载链接。我们希望能够以编程方式做到这一点,以减轻负责这项工作的穷人的单调。不幸的是,WebKitDotNet在这项任务中没有成功。虽然,在基于webkit的浏览器中,您可以单击链接并触发下载,在嵌入式WebKitDotNet中单击链接时什么也没做。我的猜测是WebKitDotNet中的某些东西丢失了这个事件。如果有人想测试这个,你可以使用Sourceforge下载链接进行测试。
我团队中的一个人最终通过使用名为“IMacros”的Internet Explorer自动化工具解决了这个问题。我们之所以选择这个产品,是因为1)我们可以保证每台运行该程序的计算机都安装了IE,2)IMacros可以正确地从网站接收该事件并触发文件下载。
答案 0 :(得分:1)
在问题跟踪器上有一个2011年3月24日的发布日期,其中声明下载尚未运行:
https://github.com/webkitdotnet/webkitdotnet/issues/7
由于跟踪器中存在的问题很少,如果同时添加该功能,可能会将其标记为已解决。