WebBrowser加载页面异常
WebBrowser loading page exception
我有简单的代码,可以加载页面并通过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");
错误是:
An unhandled exception of type 'System.NullReferenceException' occurred.
但是如果我将 MessageBox
添加到代码中,它就会起作用(单击按钮后)。为什么?
无错误代码:
webWebBrowser.Navigate(url);
while (webWebBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
MessageBox.Show("loaded");
var links = webWebBrowser.Document.GetElementById("n6");
String tmp = links.InnerText;
您尝试在文档完全加载之前阅读其内容(显示 MessageBox 为您的 WebBrowser 提供了一些时间来完全加载内容)。
您应该使用 DocumentCompleted
事件
webBrowser.DocumentCompleted += (s, e) =>
{
var links = webWebBrowser.Document.GetElementById("n6");
String tmp = links.InnerText;
};
webWebBrowser.Navigate(url);
我有简单的代码,可以加载页面并通过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");
错误是:
An unhandled exception of type 'System.NullReferenceException' occurred.
但是如果我将 MessageBox
添加到代码中,它就会起作用(单击按钮后)。为什么?
无错误代码:
webWebBrowser.Navigate(url);
while (webWebBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
MessageBox.Show("loaded");
var links = webWebBrowser.Document.GetElementById("n6");
String tmp = links.InnerText;
您尝试在文档完全加载之前阅读其内容(显示 MessageBox 为您的 WebBrowser 提供了一些时间来完全加载内容)。
您应该使用 DocumentCompleted
事件
webBrowser.DocumentCompleted += (s, e) =>
{
var links = webWebBrowser.Document.GetElementById("n6");
String tmp = links.InnerText;
};
webWebBrowser.Navigate(url);