VBAでieを操作してフォームにIDとパスワードに自動入力するには? 削除
Message#2 2014年10月13日(月)22時38分 From: 管理人 |
こちらのサイト確認するとframeが使われていますね。 下記がhtmlソース内容です。 <html> <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7;EmulateIE8;EmulateIE9" /> <link rel="stylesheet" href="css/style.css" type="text/css"> <title>みまもりくんオンラインサービス ログイン</title> </head> <frameset cols="0,*" border="0" framespacing="0" bordercolor="white" frameborder="0"> <frame src="/m/GA1801HiddenFrame.do" name="hiddenFrame" noresize="noresize"> <frame src="/m/GA1801LoginService.do" name="contents"> <noframes> このページを表示するには、フレームをサポートしているブラウザが必要です。 </noframes> </frameset> <frameset> <noframes> このページを表示するには、フレームをサポートしているブラウザが必要です。 </noframes> </frameset> </html> こちらの<frame src="/m/GA1801LoginService.do" name="contents">にフォームが格納されています。 ちなみにこちらのhtmlソースを見ると以下のようななります。 <html><head> <title>みまもりくんオンラインサービス ログイン</title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7;EmulateIE8;EmulateIE9"> <link rel="stylesheet" href="css/style.css" type="text/css"> <script src="/m/js/18login.js"></script> </head> <body class="menuBody" onload="JavaScript:clientinfo();"> <table width="770" height="100%" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td width="154" valign="top" align="center" class="me01"> <img src="/m/images/spacer.gif" height="18" width="154" border="0"> <a href="https://www.mytruck.jp/mimamori/products/mimamori_online/index.html" target="_blank" title="みまもりくんオンラインサービス"><img src="/m/images/logo_s.gif" height="80" width="150" border="0"></a></td> <td width="16" valign="top" class="me01"><img src="/m/images/spacer.gif" height="1" width="16" border="0"></td> <td valign="top"> <table width="600" border="0" cellpadding="0" cellspacing="10"> <tbody><tr> <td width="580" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td valign="top"> <table width="580" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td height="15" align="right"><a href="http://www.isuzu.co.jp" target="_blank"><img src="/m/images/isuzu.gif" height="13" width="67" border="0" alt="いすゞ自動車株式会社"></a></td> </tr> <tr> <td height="33"> <img src="/m/titlebar/title_login.gif" height="33" width="580" border="0" alt="ログイン"> </td> </tr> </tbody></table> </td> </tr> <tr> <td height="447" valign="top" align="center"> <table width="560" border="0" cellpadding="0" cellspacing="0"> <form name="loginForm" method="POST" action="/m/loginCheck.do" onsubmit="return loginSubmit();"></form> <tbody><tr> <td height="45"> <span class="titlem2">ようこそ みまもりくんオンラインサービスへ。</span> </td> </tr> <tr> <td height="40" valign="top"> <p class="main">本サービスをご利用頂くには「 <a href="https://www.mytruck.jp/mimamori/products/mimamori_online/index.html" target="_blank" title="みまもりくんオンラインサービス"><span class="link">みまもりくんオンラインサービス</span></a>」のご契約が必要です。</p> </td> </tr> <tr> <td height="50" valign="top"> <img src="/m/images/mlist0.gif" height="7" width="10" border="0"><a href="https://www.mytruck.jp/mimamori/products/mimamori_online/index.html" target="_blank" title="みまもりくんオンラインサービス"><span class="link">「みまもりくんオンラインサービス」についてはこちらを参照ください</span></a> </td> </tr> <tr> <td valign="top" align="center"> <table width="100%" border="0" cellpadding="4" cellspacing="3"> <tbody><tr> <td width="20%" height="35" align="center" class="ko_midasi" nowrap=""> ユーザーID </td> <td width="20%" align="center" class="me01" nowrap=""> <input type="text" name="loginID" maxlength="10" size="18" value="" style="ime-mode:disabled"> </td> <td bgcolor="#e9e9e9" nowrap=""> <span class="mains">半角英数字<br>アルファベットは大文字で入力して下さい。</span> </td> </tr> <tr> <td height="35" align="center" class="ko_midasi" nowrap=""> パスワード </td> <td align="center" class="me01" nowrap=""> <input type="password" name="password" size="18" maxlength="12" value=""> </td> <td bgcolor="#e9e9e9" nowrap=""> <span class="mains">半角英数字<br>アルファベットは大文字・小文字が区別されますのでご注意下さい。</span> </td> </tr> </tbody></table> </td> </tr> <tr class="buttonAndTable2"><td> </td></tr> <tr> <td align="center"><input type="image" name="" src="/m/images/login.gif" alt="ログイン"></td> </tr> <tr> <td height="30" class="dummy"> </td> </tr> <tr> <td valign="top"> <span class="grays"><ご注意事項><br>第三者にパスワードを知られた場合、悪用される可能性もありますので、パスワードはお客様の責任のもと大切に保管し、また定期的に変更することをお勧めします。 </span> <br><br> <img src="/m/images/mlist0.gif" height="7" width="10" border="0"> <a href="https://www.mytruck.jp/mimamori/FAQ/login/faq_login01.html" target="_blank" title="FAQ(ユーザーID)"><span class="links">ユーザーIDやパスワードをお忘れになった方はこちらを参照ください。</span></a> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </td> </tr> <tr> <td> <table width="580" border="0" cellpadding="0" cellspacing="0"> <tbody><tr> <td colspan="2" bgcolor="#cccccc"><img src="/m/images/dot.gif" height="2" width="1" border="0"></td> </tr> <tr> <td colspan="2" bgcolor="#000033"><img src="/m/images/dot.gif" height="1" width="1" border="0"></td> </tr> <tr valign="top"> <td> <img src="/m/images/copyright.gif" border="0" vspace="6" alt="Copyright(C) ISUZU MOTORS LIMITED"> </td> <td align="right"><a href="https://www.mytruck.jp/mimamori/security/security.html" target="_blank" title="セキュリティポリシー"><img src="/m/images/btn_sec.gif" height="10" width="117" border="0" vspace="4" alt="セキュリティポリシー"></a> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </td> </tr> </tbody></table> </body></html> ですので、まずはframeのhtmlを取得してからフォームの値入力+クリック処理をしていきます。 下記を参考に確認してください。 一応、こちらで確認したところログインはできませんでしたが、それぞれ処理がうまくいっているかと思います。 Sub sample() Dim objIE As InternetExplorer Dim objTag As Object 'IEでfacebook画面を起動 Call ieView(objIE, "https://www.mytruck.jp/m/GA1801.do") 'フレームのオブジェクトを取得する Set objFrame = objIE.document.frames(1).document 'フレーム内のテキストボックス・パスワードボックスに値を入力 For Each objTag In objFrame.getElementsByTagName("input") If objTag.name = "loginID" Then objTag.value = "★ユーザーID★" End If If objTag.name = "password" Then objTag.value = "★パスワード★" End If If InStr(objTag.outerHTML, "ログイン") > 0 Then objTag.Click Call ieCheck(objIE) End If Next End Sub Sub ieView(objIE As InternetExplorer, _ urlName As String, _ Optional viewFlg As Boolean = True, _ Optional ieTop As Integer = 0, _ Optional ieLeft As Integer = 0, _ Optional ieWidth As Integer = 600, _ Optional ieHeight As Integer = 800) 'IEのオブジェクトを作成する Set objIE = CreateObject("InternetExplorer.Application") 'IEを表示・非表示 objIE.Visible = viewFlg objIE.Top = ieTop 'Y位置 objIE.Left = ieLeft 'X位置 objIE.Width = ieWidth '幅 objIE.Height = ieHeight '高さ '指定したURLのページを表示する objIE.Navigate urlName 'IEが完全表示されるまで待機 Call ieCheck(objIE) End Sub Sub ieCheck(objIE As InternetExplorer) Dim timeOut As Date timeOut = Now + TimeSerial(0, 0, 10) Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop timeOut = Now + TimeSerial(0, 0, 10) Do Until objIE.document.ReadyState = "complete" DoEvents Sleep 100 If Now > timeOut Then objIE.Refresh timeOut = Now + TimeSerial(0, 0, 10) End If Loop End Sub |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。