19

How can I create a program with C# to submit the form(in the web browser CONTROL in windows Apps)automaticlly ?

Jon Seigel
  • 12,251
  • 8
  • 58
  • 92

3 Answers3

34

The WebBrowser control has a Document property, which returns an HtmlDocument. The HtmlDocument has several members you can use to traverse and manipulate the DOM.

Once you've used these methods to find the form, you can use InvokeMember to call the form's submit method.

If you know the page has a single form:

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

If you know the ID of the form you would like to submit:

HtmlElement form = webBrowser1.Document.GetElementById("FormID");
if (form != null)
    form.InvokeMember("submit");
user229044
  • 232,980
  • 40
  • 330
  • 338
  • 3
    before submitting, you can fill out the form like this-- webBrowser1.Document.GetElementById("PRICE1").SetAttribute("value", "100"); – milkplus Aug 13 '12 at 23:41
  • 2
    Not only can, but **must**: Without first filling out required/mandatory input fields, the submission is bound to fail or simply produced undesired/unexpected results. Note that the first parameter in `SetAttribute()` is always **"Value"** (with the quotes). +1 – ih8ie8 Oct 21 '12 at 18:37
  • is there a way to find out what happened after submit? like get the response ? – Rohit Sep 30 '19 at 07:38
0

If you know the page has a single form or you want the first form:

HTMLDocument doc = webBrowser.Document as HTMLDocument;    
HTMLFormElement form = doc.all.OfType<HTMLFormElement>().First();
form.submit();
Oliver Kötter
  • 1,006
  • 11
  • 29
0
WebBrowser.Document.GetElementById("form_submit").InvokeMember("click");
Ian
  • 35
  • 1
  • 6