Web browser.navigate ("www.somesite.com") Загрузить страницу в окне, но Webbrowser.Document возвращает значение Null - PullRequest
0 голосов
/ 18 мая 2010

Я использую веб-браузер в форме окна. Здесь я перехожу на какой-то сайт с 1 параметром. Он загружает страницу в веб-браузер, но когда я ищу webbrowser.document, чтобы найти некоторые HTML-теги, он показывает NULL для него. Я хочу узнать все теги привязки на веб-странице Loaded. Ниже приведен мой код.

 webChatPage.Navigate(ConfigurationManager.AppSettings["ServerURL"].ToString() + "/somepage.php?someparameter=" + sessionId);

 HtmlDocument hDoc = webChatPage.Document;  //hDoc = NULL in debugging               
 HtmlElementCollection aTag = hDoc.Links;
 MessageBox.Show(aTag.Count.ToString());

Если есть какое-то решение, помоги мне.

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Вам необходимо обработать событие Navigated , чтобы получать уведомления о начале загрузки документа:

Когда происходит событие Navigated, новый документ начинает загружаться, что означает, что вы можете получить доступ к загруженному содержимому через свойства Document, DocumentText и DocumentStream.

РЕДАКТИРОВАТЬ: Как отмечает BrianLy в комментариях, лучшим решением было бы вместо этого обрабатывать событие DocumentCompleted , поскольку в этот момент документ завершил загрузку. Ваш код будет выглядеть примерно так:

webChatPage.DocumentCompleted += (o, e) => {
    //called when document has finished loading
    HtmlDocument hDoc = webChatPage.Document;               
    HtmlElementCollection aTag = hDoc.Links; 
    MessageBox.Show(aTag.Count.ToString());
}

string url = ConfigurationManager.AppSettings["ServerURL"].ToString() + "/somepage.php?someparameter=" + sessionId;
webChatPage.Navigate(url);
0 голосов
/ 18 мая 2010

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

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