VB6からAmazon.co.jpにサインインするプログラムを作成しています。
Amazonから、サインアウトした状態で、
https://www.amazon.co.jp/gp/sign-in.html
のページをWebBrowserコンポーネント上で表示させた後、
----------------------------------------------------------------
Dim objDOC As IHTMLDocument2 'ドキュメント
Set objDOC = WebBrowser1.Document 'ドキュメント取得
objDOC.All("email").Value = EMail 'Eメールアドレス入力
objDOC.All("password").Value = PasWd 'パスワード入力
objDOC.All("action", 1).Checked = 1 '"Amazon.co.jpのアカウントを持っています。"を選択
objDOC.Forms(0).submit '「サインイン」ボタンを押す
----------------------------------------------------------------
の様なコードを実行させてみたところ、
画面は遷移するのですが、何故かサインインされていません。
ところが、同様のことをIE6上で手作業で行うと、
サインインされていました。
自分的には、最後にサインインボタンを押す際の処理に
問題があると思うのですが、何故結果が違うのでしょう?
VB6上で、submitするのと、実際にマウスでボタンをクリックするのでは、
動作が異なるのでしょうか?
サインインするぺーじのソース見てみれば?
JavaScriptでなんか書かれてたりするかも。
Amazonのサインインページは、JavaScriptをオフにしてもサインインできるので、
JavaScriptは関係ないとふんだのですが、
ソースを見ると確かにスクリプト(JavaScript,VBScriopt)
が並んでいます。
しかし、VB上から、
objDOC.Forms(0).submit
した場合、結局マウスでクリックしたのと同じ様に
スクリプトが実行されないのでしょうか?
> objDOC.Forms(0).submit
フォームの submit メソッドを呼ぶ代わりに、
サインインボタンの click メソッドを呼んでみては如何でしょう。
# ターゲットとなるページを見ていないので、外してるかも。
Clickメソッドで無事に出来ました。
Submit()は、デフォルトのボタンをClickするのと、
同じかと思っていました。
ありがとうございました。