0

    在C#中使用WebBrowser控件提交网页表单

    2023.05.25 | admin | 150次围观

    这篇文章主要介绍在C#中使用WebBrowser控件提交网页表单网页 没有提交按钮, 对于目前你搜索查找的问题还是具有很好的参考价值,希望编程之家小编整理的这个内容对大家有所帮助。如有错误或未考虑完全的地方网页 没有提交按钮,望不吝赐教。

    我已经在SO和网络上看到过很多关于这个特定主题的帖子,大多数(如果不是全部)代码如下所示

    private void btnSubmit_Click(object sender,RoutedEventArgs e)
    {
      webbrowser1.Navigate(new Uri("http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/onsubmit.htm"));
    }
    private void btnLogin_Click(object sender,RoutedEventArgs e)
    {
        mshtml.HTMLDocument htmlDoc = null;
        htmlDoc = (mshtml.HTMLDocument) this.webbrowser1.Document;
        if (webbrowser1.Document != null)
        {
            foreach (mshtml.HTMLFormElement form in htmlDoc.forms)
            {
                form.submit();
                break;
            }
        }
    }

    代码没有任何错误,但对于生命它没有提交.我正在使用的示例页面有简单的按钮,它做什么,它提醒选择单选按钮,然后提交表单.由于某些奇怪的原因,当使用Webbrowser控件通过代码提交表单时,表单已提交,但警报从未显示.

    我不确定我在这里做错了什么.任何有关这方面的帮助将不胜感激.

    解决方法

    点击按钮会执行您需要它做的事情吗?您将需要向Microsoft HTML对象库(您可能已经拥有)添加COM引用.例如,如果您将google加载到webbrowser控件中,此代码会将“hello world”放入搜索框并执行搜索:

    mshtml.IHTMLDocument2 doc = ((mshtml.HTMLDocumentClass)webbrowser1.Document);
             ((mshtml.IHTMLElement)doc.all.item("q")).setAttribute("value","hello world");
             MessageBox.Show("Clicking I'm feeling lucky button");
            ((mshtml.HTMLInputElement)doc.all.item("btnI")).click();

    编辑:我更新了WPF Webbrowser控件使用的组件的代码.另请注意,这有时会引发谷歌的脚本错误,但这似乎是一个时间问题,基于google在主页上的一些ajax调用.

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    标签: 网页代码
    发表评论