在 WebBrowser 中提交 HTML 表单

Submitting HTML form in WebBrowser

我正在使用以下代码在我的 WebBrowser 中提交表单:

    private void wbMain_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (!string.IsNullOrEmpty(wbMain.Url.AbsoluteUri))
        {
            wbMain.Document.GetElementById("dp").SetAttribute("checked", "checked");
            MessageBox.Show("checked");
            wbMain.Document.GetElementById("frm").InvokeMember("submit");
        }
    }

它工作完美,但删除 MessageBox 表单后不再提交。不知道为什么,可能是表单未加载完成时调用提交?

你有什么建议?

我遇到了类似的问题,但不幸的是没有弄清楚到底出了什么问题。 看起来调用 MessageBox.Show() 会触发一系列事件,这使得 WebBrowser "update" 成为它的状态。

我的解决方案不是调用成员,而是执行适当的 javascript。

你试过了吗?

while (browser.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }