読者です 読者をやめる 読者になる 読者になる

三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク



XXXXさんへ VBS IE操作で alt="ログイン"のボタンを探して押す方法

VBS IE操作

>最近VBSを勉強し始めた初心者です。
>SONETブログのログインボタンを押す方法がわからず、悪戦苦闘しています。
>http://blog.so-net.ne.jp/ 
>どのようにしたらボタンを押す事ができるのか教えていただけたら幸いです。

http://blog.so-net.ne.jp/ の ソースをみると、

<span class="user0">ようこそ</span><span class="user1">ゲスト</span><span class="user2">さん</span>
<a href="javaScript:login_url();">
<img src="/_common/img/header/login_sts_login.gif" alt="ログイン" />
</a>

となっているので、
.getElementsByTagName("A")でaタグを集めて、
ログインの文字を .OuterHTMLから探して
.Clickでクリックしてみます。

    'IEのオブジェクトを作成する
    Set objIE = CreateObject("InternetExplorer.application")
    objIE.Top = 100
    objIE.Left = 100
    objIE.Width = 1024

    objIE.Visible = True

    'ページを開く(.Navigateで表示する。)
    objIE.Navigate "http://blog.so-net.ne.jp/"
    Wscript.Sleep 1000   '1000で1秒

    '読み込み完了となるまで、ループする。
    While objIE.ReadyState <> 4 Or objIE.Busy  'READYSTATE_COMPLETE = 4
        Wscript.Sleep 100   '0.1秒待つ、1000で1秒
    Wend
    Wscript.Sleep 1000   '1秒

    'リンクを探す
    'ログイン ボタンを探して押す
    '<a href="javaScript:login_url();"><img src="/_common/img/header/login_sts_login.gif" alt="ログイン" /></a>
    'Aのタグを集める .getElementsByTagName("A")を使用
    Set objA = objIE.Document.getElementsByTagName("A")

    'ループで頭からhtmlが alt=ログイン を探す
    For n = 0 To objA.Length - 1
        '※ HTMLのalt=ログインを探したいので、.InnerTextでもなく.Valueでもなく .OuterHTMLを使用
        If Instr(objA(n).OuterHTML,"ログイン") > 0 Then  'HTML文字列の中から見つけたら
            objA(n).Click  '見つけたINPUTタグのオブジェクトをクリック
            WScript.Sleep  1000  '1秒待つ 1000で1秒
            Exit For
        End If
    Next
    'HTMLから探すから全て .OuterHTMLを使用してもいいかなぁ(ほかの時も、いつもOuterHTMLでも)

    Set objINPUT = Nothing  'オブジェクト変数解放

    '読み込み完了となるまで、ループする。
    While objIE.ReadyState <> 4 Or objIE.Busy  'READYSTATE_COMPLETE = 4
        Wscript.Sleep 100   '1000で1秒
    Wend
    Wscript.Sleep 1000   '1000で1秒

    'この先のページで、IDとパスワードをセットする。セット後またログインを押すんだけど・・・

何かの参考となれば・・・