Использование COM-объектов для автоматизации браузера .net - PullRequest
0 голосов
/ 31 мая 2018

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

Что является альтернативой моему обычному

    Dim ie As InternetExplorer

        ie = New InternetExplorer
        ie.Visible = True
        ie.Navigate(website)

Я не уверен, разрешены ли вопросы типа передовой практики, но мне очень интересно узнать ответ на этот вопрос.В основном альтернатива, а затем, конечно, короткая причина?Спасибо, ребята:)!

1 Ответ

0 голосов
/ 31 мая 2018

Фактически, вы можете использовать элемент управления Webbrowser в многопоточном приложении + console / winforms.

На основании этого ответа: Запуск и управление браузерным управлением в другом потоке

var html = RunWBControl("http://google.com").Result;

static public Task<string> RunWBControl(string url)
{
    var tcs = new TaskCompletionSource<string>();
    var th = new Thread(() =>
    {
        WebBrowserDocumentCompletedEventHandler completed = null;

        using (WebBrowser wb = new WebBrowser())
        {
            completed = (sndr, e) =>
            {
                tcs.TrySetResult(wb.DocumentText);
                wb.DocumentCompleted -= completed;
                Application.ExitThread();
            };

            wb.DocumentCompleted += completed;
            wb.Navigate(url);
            Application.Run();
        }
    });

    th.SetApartmentState(ApartmentState.STA);
    th.Start();

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