我有简单的代码,可以加载页面并通过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
在代码中加上a ,那么它将起作用(单击按钮后)。为什么?
没有错误代码:
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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句