从 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,即在单击按钮之前。

从 Web 浏览器控件调用按钮单击后检索 Html 表数据

使用如下所示的内容。我认为它会起作用。

        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
}