从 Web 浏览器控件调用按钮单击后检索 Html 表数据
本文关键字:检索 Html 数据 单击 按钮 Web 浏览器 控件 调用 | 更新日期: 2023-09-27 18:36:35
尝试遵循代码时,我收到空引用错误
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("textbox1").InnerText = "sometext";
webBrowser1.Document.GetElementById("textbox2").InnerText = "sometext";
webBrowser1.Document.GetElementById("Button1").InvokeMember("click");
object tb = webBrowser1.Document.GetElementById("Table1").All;
}
没有第 4 行,我的代码工作正常。但是添加了第 4 行,我遇到了错误。
实际上,我想保存单击按钮1后生成的表。上一页上没有表1,即在单击按钮之前。
使用如下所示的内容。我认为它会起作用。
HtmlElement hleGetData = (HtmlElement)hdoc.GetElementById("getButton");
hleGetData.InvokeMember("click");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents();
};
System.Threading.Thread.Sleep(1000);
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.DoEvents();
System.Windows.Forms.Application.DoEvents();
Web 浏览器
的 Document 属性为 null,因为浏览器尚未加载页面。您需要处理 Web 浏览器的 DocumentCompleted 事件并访问其中的 HTML 代码。
private void webbrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// access HTML here
}