如何在 WebBrowser 控件中提交表单?

Posted

技术标签:

【中文标题】如何在 WebBrowser 控件中提交表单?【英文标题】:How do I submit a form inside a WebBrowser control? 【发布时间】:2011-01-18 22:45:00 【问题描述】:

如何使用 C# 创建程序以自动提交表单(在 Windows 应用程序中的 Web 浏览器 CONTROL 中)?

【问题讨论】:

【参考方案1】:

WebBrowser control 有一个Document property,它返回一个htmlDocument。 HtmlDocument 有 several members 可以用来遍历和操作 DOM。

使用这些方法找到表单后,您可以使用InvokeMember 调用表单的提交方法。

如果您知道页面只有一个表单:

foreach (HtmlElement form in webBrowser1.Document.Forms)
    form.InvokeMember("submit");

如果您知道要提交的表单的 ID:

HtmlElement form = webBrowser1.Document.GetElementById("FormID");
if (form != null)
    form.InvokeMember("submit");

【讨论】:

提交前可以这样填写表格--webBrowser1.Document.GetElementById("PRICE1").SetAttribute("value", "100"); 不仅可以,而且必须:如果不先填写必填/强制输入字段,提交必然会失败或只是产生不希望/意外的结果。请注意,SetAttribute() 中的第一个参数始终是 "Value"(带引号)。 +1 有没有办法知道提交后发生了什么?喜欢得到回应?【参考方案2】:

如果您知道该页面只有一个表单或者您想要第一个表单:

HTMLDocument doc = webBrowser.Document as HTMLDocument;    
HTMLFormElement form = doc.all.OfType<HTMLFormElement>().First();
form.submit();

【讨论】:

【参考方案3】:
WebBrowser.Document.GetElementById("form_submit").InvokeMember("click");

【讨论】:

以上是关于如何在 WebBrowser 控件中提交表单?的主要内容,如果未能解决你的问题,请参考以下文章

VB任务实例,VB向WebBrowser控件提交表单自动登录

C# WebBrowser 控件 - 使用 InvokeMember("Click") 提交表单不起作用

html如何向php中post数据

如何将帐户信息放入 Facebook 登录表单并单击 Web 浏览器控件中的提交按钮?

webbrowser控件如何实现提交的时候触发Winform窗体上button的单击事件

求C# winform中点击按钮执行网页JS提交表单代码实现~~!