加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 04:11:27 所属栏目:百科 来源:网络整理
导读:我已经在SO和网络上看到过很多关于这个特定主题的帖子,大多数(如果不是全部)代码如下所示 private void btnSubmit_Click(object sender,RoutedEventArgs e){ webBrowser1.Navigate(new Uri("http://samples.msdn.microsoft.com/workshop/samples/author/dhtm
我已经在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调用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读