でナビゲートしながら、私は、Excel VBAを持つマクロハンドルウェブサイトのポップアップIE
- はIE、メディケアのウェブサイトへ
- ナビゲート、
- ログ私を、
- は、請求項を比較を開くことワークブックで、すでにそれらをウェブサイトに掲載され
- は、任意の違いを私に警告し
ログイン中に問題が発生しているので、私は以下のコードの部分を再現しました。 .click
行が実行されるとすぐに、ユーザにOKボタンをクリックするように求めるポップアップウィンドウが表示されます。マクロ実行は、ポップアップでOKボタンを手動でクリックするまで中断されます。
http://www.mymedicare.gov Webページの後ろのソースコードは、ポップアップに関連する情報を持っているが、私はプログラム的にポップアップOKボタンをクリックすることができるようにそれを使用する方法を見つけ出すことができませんでした。
数年前、私はthis questionを投稿し、Tim Williamsはポップアップウィンドウの背後にあるjavascriptとのやり取りに基づいて優れたsolutionを提供しました。メディケアはWebページの背後にあるコードを変更し、Timのソリューションはもはやポップアップウィンドウを処理しません。私はTimのテーマについて多くのバリエーションを試しましたが、解決策を見つけられませんでした。
プログラムでポップアップのOKボタンをクリックする方法を理解する上で助けがあれば幸いです。
注:この質問の目的のために、任意のユーザーIDとパスワードを使用できます(下記のコードではabcdeと12345を使いました)。ポップアップを処理すると、間違ったユーザーID /パスワードなどのページに渡されます。これはあなたがポップアップの処理に成功したことを示します。
Sub Medicare_Claims()'
' Update the status bar
Application.StatusBar = "Running the Medicare Claims subroutine"
' Open the "MyMedicare web page
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
.Navigate "https://www.mymedicare.gov/"
End With
' Loop until the page is fully loaded
Do Until ie.ReadyState = 4 And Not ie.Busy
DoEvents
Loop
' Log-in
ie.Document.all.Item("ctl00_ContentPlaceHolder1_ctl00_HomePage_SWEUserName").Value = "abcde"
ie.Document.all.Item("ctl00_ContentPlaceHolder1_ctl00_HomePage_SWEPassword").Value = "12345"
ie.Document.getElementById("ctl00_ContentPlaceHolder1_ctl00_HomePage_SignIn").Click
' Loop until the page is fully loaded
Do Until ie.ReadyState = 4 And Not ie.Busy
DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:15"))
' Navigate further to the Search Claims" web page
ie.Navigate "https://www.mymedicare.gov/searchclaims.aspx"