我正在使用WebKitDotNet来模拟和自动化Web浏览器。这确实很漂亮,并且在很多方面都有效。但是,当我尝试实现此代码时,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可以从网站正确接收事件并触发文件下载。

最佳答案

在问题跟踪器上,有一个发布日期为2011年3月24日,其中指出下载尚不可用:

https://github.com/webkitdotnet/webkitdotnet/issues/7

由于跟踪器中的问题很少,如果同时添加该功能,可能会将其标记为已解决。

关于c# - 可以使用Webkitdotnet在C#中通过WebKit浏览器下载文件吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7641602/

10-12 07:36