VB2008 Professional、Windows Vista SP1、IE8 にて開発しています。
WebBrowserコントロールを使って簡易ブラウザを組み込んで自動ログインを行うソフトを作っているのですが、サイト(formの仕組み?)によって、フォームボタン(<input type="submit"〜>)をsubmitさせても、ログインやその後の処理が引き継がれない場合があります。
※手動でフォームボタンをWebBrowserコントロール上から操作しても同様です。
例えば、ジャパンネット銀行やイーバンクへのログインがうまく処理されません。
ジャパンネット銀行の場合、ログインを実行したにも関わらず以下の表示になってしまいます。
----------------------------------------------------
お取り引きには「ログイン」が必要となります。
ジャパンネットバンクのホームページへ戻り、「ログイン」をお願いいたします。
----------------------------------------------------
イーバンクの場合:
----------------------------------------------------
当行所定の時間が経過したか、当行で未対応の操作が行われたため、お取引を続けることができません。再度ログインの上、お取引ください。
----------------------------------------------------
三井住友銀行や三菱東京UFJ銀行のネットバンキングへのログインはWebBrowserからも正常に行えました。
また、楽天やAmazonで商品購入ボタンをクリックした際もなぜかエラーが発生してしまいます。
※Internet Explorerからはもちろん正常に処理されます。
楽天のエラー表示:
-----------------------------------------------------
エラーが発生しました。
お手数ですが、前のページに戻って、再度お試し下さい。
-----------------------------------------------------
※エラーとはなりますが、楽天もAmazonも実際には改めてカートページを見ると、買い物かごに商品が入っています。
IEやFireFoxなどの普段利用するブラウザ側でUser-Agentを変えたり、JavaScriptやCookieの可否をして同一の現象が起こるかテストしてみましたが、WebBrowserでの動作とはならず、プログラム側でどう対処すればよいのか分かりません。
httpやhttpsの違い、post/getの違いでもなさそうですので、他にチェックすべきポイントや設定方法などがありましたらご教授いただけますでしょうか。
私も似たようなログイン処理を作ったことがあるんですが、
.submitは、期待通りに動いてくれないことが多かったですね。
そんなときは、直接コントロールをクリックすると、すんなり動く場合があります。
例)
.Forms("MAIN").Item("LOGIN").Click
ツイート | ![]() |