ページ内のボタンを自動クリックさせると、javascriptのconfirmが出ます。
さらにそのconfirmのOKボタンも自動でクリックさせたいのですが、objIE.Document.all.btn1.Clickの実行後で止まってしまうようです。
擬似マルチスレットで解決できるのかなと思うのですが、どのように記述したらよいか分かりません。
下記プログラムに書き加えてください。よろしくお願いします。
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate "URL"
Do While objIE.Busy = True
DoEvents
Loop
objIE.Document.all.btn1.Click (ページ内ボタンのクリック)
----------これでconfirmのOKボタンを押そうとしています。--------------
Dim lngDHnd As Object
Dim lngRc As Object
Const WM_COMMAND = &H111
lngDHnd = GetLastActivePopup(objIE.hWnd)
lngRc = PostMessage(lngDHnd, WM_COMMAND, 2, 0)
----------------------------------------------------------------
おそらく、特定のWEBサイトの操作の自動化かと思いますが、confirmを表示させてからconfirmのOKを押すよりも、confirmを実行させずにボタンクリックの動作をさせた方が良いかと思います。
Javascriptで
1.Confirmを表示
2.OKだったら、formをsubmitする
などとなっているとおもいますので、VBでいきなり2を実行すれば良いと思います。
WEBサイトのHTMLソースを見て、ボタンクリックでどのJavascriptコードが実行されているか、動作を追いかけていけば、わりとすぐ見つかる可能性が高いです。
ボタンを押してから、 GetLastActivePopup 等で処理したいなら、
お隣の質問 http://q.hatena.ne.jp/1272265167#a1012169
objIE.document.parentWindow.execScript "window.setTimeout(""document.getElementById('test_button').click();"",10);"
が参考になるのでは?
手前味噌のダメURL http://d.hatena.ne.jp/ken3memo/20100428 も何かの参考になれば(笑)
<input type="submit" name="a" value="a">
<input type="submit" name="b" value="b" onclick="return confirm('')">
このように同じフォーム内に2つのsubmitボタンがありました。
bの方を押したいのですが、どのようにすればよいでしょうか。