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

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

【问题讨论】:

    标签: c# .net winforms webbrowser-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");
      

      【讨论】:

        猜你喜欢
        • 2011-12-18
        • 1970-01-01
        • 1970-01-01
        • 2012-02-15
        • 1970-01-01
        • 2013-10-03
        • 2021-02-15
        • 2010-12-05
        相关资源
        最近更新 更多