###前提・実現したいこと
VBSCRIPTにてIE操作をして目的のサイト(URL)へ到達したい
###発生している問題・エラーメッセージ
最初にログイン画面にてアカウント情報を入力しログインボタンをクリックします。その後画面遷移が行われるのですが、VBSCRIPTのIEのオブジェクトではDOM情報が更新されていない。
###該当のソースコード
Dim ie
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "http://hogehoge.com/login.do"
WScript.Sleep 5000
ie.Visible = True
WScript.Sleep 100
Dim elms
set elms = ie.document.getElementsByName("userid")
elms(0).Value = "abcde"
set elms = ie.document.getElementsByName("password")
elms(0).Value = "ABCDE"
set elms = ie.document.getElementsByName("login")
elms(0).click()
WScript.Sleep 5000
Dim i
For i = 0 To ie.Document.Links.Length - 1
MsgBox (ie.Document.Links(i).Href)
If ie.Document.Links(i).Href = "next.do?id=45" then
ie.Document.Links(i).Click()
Exit For
End If
Next
set ie = Nothing
###試したこと
課題に対してアプローチしたことを記載してください
LinkをFor文で回して該当のHrefが見つかるところをクリック操作しようとしてますが、反応が無いため、For文内にMsgBoxでダイアログを表示させようとしましたが反応なし。
そのため、同じFor文を
For i = 0 To ie.Document.getElementsByTagName("input").Length - 1
MsgBox (ie.Document.getElementsByTagName("input")(i).name)
Next
としてMsgBox出力で確認したところ、ログイン前のDOMの情報が表示されました。よって、DOM情報が更新されていないことになります。
MsgBox表示時には画面遷移自体は行われていることを確認してます。
(Sleepで長めの5秒待ちにしてるので…)
###補足情報(言語/FW/ツール等のバージョンなど)
Windows7-32bit
IE11
関連があるか分かりませんが、補足の症状としては、
ie.Visible = True
を
WScript.Sleep 5000
の前に持っていくと、ログイン画面のDOM情報すら取れなくなります。
あなたの回答
tips
プレビュー