В конструкторе:Почему при переходе на сайт с помощью webbBrowser я все время получаю исключение?
webBrowser2.Navigate("http://www.tapuz.co.il/forums/forumpage/393");
Тогда в DocumentCompleted:
void webBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElementCollection items = this.webBrowser1.Document.GetElementsByTagName("span");
foreach (HtmlElement item in items)
{
if (item.GetAttribute("className") == "addMessage")
{
item.InvokeMember("click");
break;
}
}
}
Я получаю на
HtmlElementCollection items = this.webBrowser1.Document.GetElementsByTagName("span");
Null исключение.
Я пытался добавить до этой линии цикл:
while (webBrowser2.ReadyState != WebBrowserReadyState.Complete)
{
return;
}
Но это ничего не делать, когда страница загружена. Это не доходит до следующих строк. Я только что просмотрел загрузку страницы в webBrowser.
Вы получаете исключение для ссылочной ссылки, потому что 'this.webBrowser1.Document' равно null. Потому что вы перешли в 'webBrowser2'. Также при использовании события 'DocumentCompleted' вам не нужен такой цикл while. –
NRE - это то, что каждый разработчик поражает в какой-то момент. Лучшее, что вы можете сделать, чтобы вооружить себя, - это научиться отлаживать - [этот вопрос] (http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i- fix-it) переводит его в более общем смысле. –
[Что такое исключение NullReferenceException и как его исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –