Я использую 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". Я бы ожидал, что хотя бы один из них сделает это - есть ли настройки, которые мне не хватает?
EDIT: Я знаю, что это старый вопрос, но здесь обновление. Когда я писал этот вопрос, я пытался автоматизировать процесс, который требовал от человека - один раз в день - регистрироваться на веб-сайте, предоставлять учетные данные и нажимать ссылку для загрузки. Мы надеялись, что сможем сделать это программно, чтобы уменьшить монотонность для бедного человека, которому поручено выполнять эту работу.
К сожалению, WebKitDotNet не справилась с этой задачей. Хотя в браузере на основе webkit вы можете щелкнуть ссылку и запустить загрузку, во встроенном WebKitDotNet щелчок по ссылке ничего не сделал. Я предполагаю, что что-то внутри WebKitDotNet потеряло это событие. Если кто-то хочет проверить это, вы можете использовать ссылку для загрузки Sourceforge для тестирования.
Один из парней моей команды в конечном итоге решил эту проблему, используя инструмент автоматизации Internet Explorer под названием "IMacros". Мы выбрали этот продукт, потому что 1) мы могли бы гарантировать, что IE был установлен на каждом компьютере, который будет запускать программу, и 2) IMacros мог бы правильно получать событие с веб-сайта и запускать загрузку файла.