web-dev-qa-db-ja.com

WebBrowserコントロール内でフォームを送信するにはどうすればよいですか?

フォームを(WindowsアプリのWebブラウザーCONTROLで)自動的に送信するC#を使用してプログラムを作成するにはどうすればよいですか?

WebBrowserコントロール には Documentプロパティ があり、 HtmlDocument を返します。 HtmlDocumentには いくつかのメンバー DOMをトラバースして操作するために使用できます。

これらのメソッドを使用してフォームを見つけたら、 InvokeMember を使用してフォームのsubmitメソッドを呼び出すことができます。

ページに単一のフォームがあることがわかっている場合:

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

送信するフォームのIDがわかっている場合:

HtmlElement form = webBrowser1.Document.GetElementById("FormID");
if (form != null)
    form.InvokeMember("submit");
31
meagar
WebBrowser.Document.GetElementById("form_submit").InvokeMember("click");
0
unol

ページに単一のフォームがあることがわかっている場合、または最初のフォームが必要な場合:

HTMLDocument doc = webBrowser.Document as HTMLDocument;    
HTMLFormElement form = doc.all.OfType<HTMLFormElement>().First();
form.submit();
0
Oliver Kötter