C # - Подождите, пока веб-браузер полностью завершит навигацию и загрузку веб-сайта / веб-страницы - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь сделать веб-автоматизацию, создав приложение Windows Form в C # с помощью WebBrowser.В настоящее время у меня есть код ниже, который переходит на Youtube и вводит строку в строке поиска Youtube.

website.Navigate("www.youtube.com");

website.Document.GetElementById("search").InnerText = "Cavaliers vs Boston highlights";

Однако я получаю исключение NullReferenceException в строке

website.Document.GetElementById ("search"). InnerText = "Cavaliers vs Boston Highlights";

Я пытался искать на разных веб-сайтах, как веб-браузер может определить, полностью ли он завершил загрузку сайта, который вы указалив методе Navigate, но до сих пор я не нашел ни одного.

В Интернете я обнаружил методы, которые проверяют состояние готовности веб-браузера, но при попытке его даже не загружает созданную мной форму, но все же переходит к методу GetElementById.

Надеемсякто-то может помочь мне с этим, пытаясь найти решение с утра.

1 Ответ

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

Попробуйте добавить прослушиватель событий в WebBrowser.WebBrowser имеет событие WebBrowser.DocumentCompleted , которое происходит, когда веб-страница полностью загружена.

Что-то вроде

public frmMain()
{
    website.DocumentCompleted += website_DocumentCompleted;
}


public void website_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{
    website.Document.GetElementById("search").InnerText = "Cavaliers vs Boston highlights"
}

, где frmMain - это ваша форма.Конечно, это может быть добавлено и в другом месте.

...