2009-02-25 29 views
1

MSHTMLを使用してWebページを自動的に解析/送信しようとしています(C#.Net 3.1 WPF WebBrowserコントロール)。私は、フォームを記入し、ボタンをクリックし、問題なくページをナビゲートすることができます。MSHTML - JavaScriptを自動的にクリックするとダイアログが確認されます

しかし、「送信」ボタンをクリックすると表示されるJavaScriptの確認ダイアログで「OK」ボタンを自動的にクリックする方法がわかりません。

C#コード:

mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)webBrowser.Document; 
mshtml.IHTMLFormElement form = doc.forms.item("inputForm", 0) as mshtml.IHTMLFormElement; 
mshtml.IHTMLElement btnSubmit = form.item("btnFormSubmit", null) as mshtml.IHTMLElement; 
btnSubmit.click(); 

確認ダイアログ( "?あなたはよろしいです")が表示されます。 私は何とか "Enter"キーストロークをMSHTMLドキュメントに送信して、自動的に送信を確認したいと思います。

答えて

0

WebBrowserコントロールはブラックボックスなので、Win32 APIを使用してダイアログボックスを取得することを検討する必要があります。そこから「OK」ボタンを呼び出すことができます。申し訳ありませんが、以前よりこの特定のことをしたことがないので、それ以上は具体的ではありません。あなたが正しい方向に研究を進めるのに十分だと思います。

+0

ありがとうございました。私はMSHTMLとWebBrowserコントロールを使用して確認ダイアログボックスでOKボタンをクリックする簡単な方法を探しています。私はこの厄介なダイアログウィンドウ以外の何かをクリックすることができます。私は何とかJavascriptを使用してHSHTMLの文書に "Enter"キーストロークを送信する必要があります –

+0

JavaScriptを使用してこれを行うことはできません - この回答を参照してください:http://stackoverflow.com/questions/563890/is-there-a-way-to-simulate -a-click-on-an-alert-in-javascript/563905#563905 ...確認は同じように動作します。だからこそ私はWin32 APIを提案する。 –

1

私は最終的にWebBrowserコントロールの確認メッセージを抑制する方法を自分で見つけました。実際にはjavascript関数showConfirm()に示されています。私は、元の関数showConfirm()を上書き/抑制するBrowser.Documentのヘッダの先頭にダミー関数showConfirm()を挿入します。コードは忙しいですが、主なアイデアは明確で、完璧に機能します。

関連する問題