如何在 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") 提交表单不起作用
如何将帐户信息放入 Facebook 登录表单并单击 Web 浏览器控件中的提交按钮?