Можно ли загрузить файл через браузер WebKit в C # с помощью webkitdotnet? - PullRequest
11 голосов
/ 04 октября 2011

Я использую 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 для проверки.

Один из парней из моей команды, в конце концов, решил эту проблему, используя инструмент автоматизации Internet Explorer под названием «IMacros». Мы выбрали этот продукт, потому что 1) мы могли гарантировать, что IE был установлен на каждом компьютере, на котором будет запускаться программа, и 2) IMacros мог правильно получать событие с веб-сайта и запускать загрузку файла.

1 Ответ

1 голос
/ 31 октября 2011

На трекере проблем есть дата публикации от 24 марта 2011 года, в которой указано, что загрузка еще не работает:

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

Поскольку втрекер, возможно, он был бы помечен как разрешенный, если бы функция была добавлена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...