WebBrowser加载页面异常

时间:2015-05-23 20:47:23

标签: c# twebbrowser

我有简单的代码,它可以加载页面并通过id获取元素。我正在使用标准组件WebBrowser webWebBrowser = new WebBrowser(); 我的问题是加载页面。

错误代码:

webWebBrowser.Navigate(url);
while (webWebBrowser.ReadyState != WebBrowserReadyState.Complete)
{
    Application.DoEvents();
}
var links = webWebBrowser.Document.GetElementById("n6");
String tmp = links.InnerText;

我在网上收到错误:

var links = webWebBrowser.Document.GetElementById("n6");

错误是:

  

发生了'System.NullReferenceException'类型的未处理异常。

但是如果我在代码中添加MessageBox,那么它就可以了(点击按钮后)。为什么呢?

无错误代码:

webWebBrowser.Navigate(url);
while (webWebBrowser.ReadyState != WebBrowserReadyState.Complete)
{
    Application.DoEvents();
}
MessageBox.Show("loaded");
var links = webWebBrowser.Document.GetElementById("n6");
String tmp = links.InnerText;

1 个答案:

答案 0 :(得分:1)

您尝试在文档内容完全加载之前阅读它(显示 MessageBox 给您的WebBrowser一些时间来完全加载内容)。

您应该使用DocumentCompleted事件

webBrowser.DocumentCompleted += (s, e) =>
{
    var links = webWebBrowser.Document.GetElementById("n6");
    String tmp = links.InnerText;
};

webWebBrowser.Navigate(url);