Webサイトに自動でログインするVBS

サイトに自動でログインするVBSのソース

事前に対象のWebサイトを開いて、F12キーを押下して、要素の名前を調べておく。
※Edge、Chromeなどのブラウザ

objIE.Visible = Trueの部分を
objIE.Visible = Falseにしておけば、ブラウザも表示されない。

========= 以下のソース ========

OpenUrl("http://XXXXXXXX.html","uid","user1","pass","xyz)

'URLを開く
Sub OpenUrl(URL,idElement,uid,passElement,pass,loginElement)
Dim objIE
    'IE起動
    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True

    'サイトに接続
    objIE.navigate URL

    'IEを待機
    Call IEWait(objIE)

    '5秒停止
    Call WaitFor(2)

    'ユーザーIDとパスワードを設定し、ボタンをクリック
    Call IEValueSet(objIE, idElement,uid)
    Call IEValueSet(objIE, passElement,pass)
    Call IEImageClick(objIE, loginElement)

    'IEを待機
    Call IEWait(objIE)

    '5秒停止
    Call WaitFor(2)

    'IE終了
    objIE.Quit

    Set objIE = Nothing
End Sub

'画像をクリックする関数
' タグの名前が「IMG」でリンク先が引数のimageSrcと一致している場合のみクリック
Public Function IEImageClick(ByRef objIE, imageSrc)
    Dim objImage
    For Each objImage In objIE.Document.getElementsByTagName("IMG")
        If InStr(objImage.src, imageSrc) <> 0 Then
            objImage.Click
            Exit For
        End If
    Next
End Function


'値を設定する関数
Public Function IEValueSet(ByRef objIE, id, value)
    Dim obj
    Set obj = objIE.Document.getElementById(id)
    obj.value = value
End Function

'ボタンをクリックする関数
Public Function IEButtonClick(ByRef objIE, id)
    Dim objbutton
    'button要素をコレクションとして取得
    Set objbutton = objIE.document.getElementById(id)
    objbutton.click
End Function


'IEを待機する関数
Function IEWait(ByRef objIE)
    Do While objIE.Busy = True Or objIE.readyState <> 4
       WScript.Sleep 1000
    Loop
End Function

'指定した秒だけ停止する関数
Function WaitFor(ByVal second)
    Dim count

For count = 1 To second
WScript.Sleep 1000
Next

End Function

0 件のコメント:

コメントを投稿

PowerShellでEdgeを自動化(インストール不要。参考:郵便追跡サービス自動操作)

1.経緯について  RPAのソフトをインストールできないので、これまでVBSでCreateObjectでブラウザの自動操作をすることがたまにあった。 ※いざというときの手札として持っているだけで安心感が段違い  見た目上IEがインストールされていなくても、CreateObject...