VBAでieを操作してフォームにIDとパスワードに自動入力するには?
未読分:2件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
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 |
Message#1 2014年10月13日(月)05時15分 From: みまもりくん | 返事 削除 変更 |
VBAでieを操作してフォームにIDとパスワードを入力してログインしたいのですが、サイトを表示させるところまでは行くのですが入力することができません。 サイト名は ”みまもりくん オンラインサービス” https://www.mytruck.jp/m/GA1801.do いろんなサイトを参考にいろいろやってみましたがフォームに入力することもできませんでした。 "getElementByid" "getElementByname" "getElementBytag"などいろいろ試しましたがすべてエラーでした。 ログインのソースは <input type="text" name="loginID" maxlength="10" size="18" value="" style="ime-mode:disabled"> <input type="password" name="password" size="18" maxlength="12" value=""> この辺かと思われるのですがもう手が出ません。 どなたかアドバイスいただけると助かります。 よろしくお願いします。 初心者なので伝わりづらかったらすみません。 |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降