はじめに
開発環境にsession保持時間が短い場合は、何度もログインする必要がある。
または、過去のプロジェクトでログイン後確認したい場合、IDやパスワードをDBから調べる必要がある。
(ほとんどの場合パスワードはハッシュ化されてわからない)
そのため、自動でログインするVBAをプロジェクトで1つは準備しておくとちょっとだけ便利機能。
自動ログイン
ChromeLogin.vbs
'設定 - ここから
Const email="【メールアドレス】"
Const pass="【パスワード】"
Const BWtime=2000 'ブラウザ表示2秒待機
Const Wtime=200 'キー入力0.2秒待機
'設定 - ここまで
Dim url
Dim ret
'ログインURL
url="http://localhost:8000/login"
On Error Resume Next
Set owsh = CreateObject("WScript.Shell")
If owsh Is Nothing Then
Msgbox "1Error: Could not execute chrome.", vbOKOnly + vbCritical, "Error"
Else
ret = owsh.Run("chrome"+" " + url, 1, False)
WScript.Sleep(BWtime)
owsh.SendKeys("{TAB}")
WScript.Sleep(Wtime)
PutInClipboardText(email)
WScript.Sleep(Wtime)
owsh.sendkeys("^v")
WScript.Sleep(Wtime)
owsh.SendKeys("{TAB}")
WScript.Sleep(Wtime)
PutInClipboardText(pass)
WScript.Sleep(Wtime)
owsh.sendkeys("^v")
WScript.Sleep(Wtime)
owsh.SendKeys("{TAB}")
WScript.Sleep(Wtime)
owsh.SendKeys("{ENTER}")
End If
Public Sub PutInClipboardText(ByVal str)
Dim cmd
cmd = "cmd /c ""echo " & str & "| clip"""
CreateObject("WScript.Shell").Run cmd, 0
End Sub
VBScriptでChromeを操作する場合は、コマンドでしか操作できない。
IEであればDOMを取得することができるので、IE限定であればもう少し複雑な判定や操作ができます。
おわり
新規プロジェクト参加メンバーが毎回IDやパスワードを聞きにくると思うので、
どこかに残すか、いっそ自動ログインまで作ってしまったほうが楽ですよね。
おまけ(読み飛ばしてOK)
最近は、windows+docker+laravelで開発することが多いため、
dockerUp.bat
@echo off
docker-compose up -d
pause
setup.bat
@echo off
docker-compose exec laravel_app /bin/bash -c "cd /var/www/html/laravel_app && composer install"
上記のようなbatを作るとすごく楽だった。
コマンドを開いて、毎回dockerを立ち上げる必要がない。
初回『.env』の設定は、初回のみ手動で設定。
一度設定すれば、『dockerUp.bat』『ChromeLogin.vbs』ですぐに作業が始められます。