トップ回答者
webBrowserで開いたページのJavascript確認用Comfirmダイアログ動作の制御する方法とは?

質問
-
Jeshonと申します。
お世話になります。
まだ開発中に問題点がありました。ご教授のほどお願いします。
詳細は下記となります。
例:あるページに配置されたボタンをクリックすると、JavaScriptの確認用Comfirmダイアログが表示されます。ユーザが「Yes」をクリックすると、次の画面へ移動する。このユーザの操作が自動的にプログラムで行いたいです。
現状考えている対策としては:
①確認用Comfirmダイアログを表示させないように、ある方法で自動的にReturn tureで次の画面へ移動する。
②ユーザ操作を模擬して、確認用Comfirmダイアログを表示した際、Enterキーを送る。
二つ対策が①番はやりたいですが、方法が分からなくて、教えていただければ助かります。
よろしくお願いします。
回答
-
SurferOnWwwさん
情報ありがとうございます。Jeshonです。
解決策を探しならが、いろいろ試していますので、
まだ何か質問をさせていただきたいです。
よろしくお願いします。
すべての返信
-
SurferOnWww さん
ご連絡ありがとうございます。
先日投稿したスレッドはまだ解決できず、調査し続いています。
「外部プログラムでIE、FFなどのブラウザをWebBrowserで解析することは
可能でしょうか?」について、JScriptを使って可能ですが、.netでまだわからないです。
解決策がなければ、変わりにWebBrowserで実現可能なので、今回のスレッドを独立で考えっていいと思います。
よろしくお願いします。 -
ちょっと試してみましたが、何故か自分の環境では HtmlElement.SetAttribute メソッド
ではうまくいかなかったです。最後の手段的ですが、HtmlElement.OuterHtml プロパティを使って、 input タグ部分を
すべて換えて OK でした。例えば下記のように:
Code Snippetprivate void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement element = webBrowser.Document.GetElementById("button1");
element.OuterHtml = "<input type=\"button\" id=\"button1\" name=\"button1\" value=\"Next Page\" onclick=\"location.href='移動先の URI'\" />";
}要するに HtmlElement オブジェクトさえ取得できれば、何とでもなると思います。
-
SurferOnWwwさん
サンプルありがとうございます。Jeshonです。
上記のサンプルは確かに次のページへ遷移できますが、Comfirmダイアログで確認を取る際、何か処理をいれった場合、上記のやり方で処理を抜けってしまいます。
最適な方法として、ユーザの操作を模擬して、なるべくページの中身を変えない方向ほうがいいのではないかと考えています。 -
Jeshon さんからの引用 最適な方法として、ユーザの操作を模擬して、なるべくページの中身を変えない方向ほうがいいのではないかと考えています。
Windows アプリからプログラムで JavaScript の confirm ダイアログの[OK]
ボタンを押す方法、もしくは、それに Enter キーを送る方法というのは自分に
は分かりません。もし、HTML ソースの方に手を加えられるのであれば、オリジナルの JavaScript
コードの confrim() の部分のみ true に変更した試験用コードを追加して、ボ
タンクリックの代わりに、HtmlDocument.InvokeScript メソッドで実行させると
いう手も考えられますが・・・「ページの中身を変えない方向」での何らかの手段はあるのかもしれませんが、
素人の自分の知識の範囲を超えていますので、残念ながら提案できません。
上で提案した方法で目的に適わないなら、すみませんが、他の方の回答に期待し
てください。 -
SurferOnWwwさん
情報ありがとうございます。Jeshonです。
解決策を探しならが、いろいろ試していますので、
まだ何か質問をさせていただきたいです。
よろしくお願いします。