現場改善#25 AutoItのインストール&ChromeDriver対応
この記事の目的
現場改善#020 キッティングの効率化の中で触れたのですが、キッティングや設定作業で最終的にRPA的な手法で解決したいケースがあります。昔はUWSCという自動操作ツールを利用していましたが、今はAutoItというソフトを利用することで対応しています。
- Webシステムへの初回ログインと初期設定
- プリンタドライバの初期値をモノクロに
などを自動で行うための備忘録です。今回は環境構築だけです。
インストール手順
作業の概要としては下記になります。
- AutoItのインストール
- gsudoのインストール
- AutoIt用ChromeWebDriver対応作業
AutoIt用ChromerWebDriver対応作業には、下記の手順が含まれます。
- WebDriverライブラリ
- JSON UDF
- WinHTTP UDF
- ChromeWebDriver
上記の導入手順が結構手間だったので、PowerShellの勉強がてらスクリプト化してみました。
AutoItのインストール
そもそもキッティングの効率化を目指していますので、wingetでインストールしたいと思います。バージョンアップやアンインストールがコマンドラインから容易に操作できるからです。
winget search autoit
とすると、下記のような結果が返って来ます。
名前 ID バージョン 一致 ソース
-------------------------------------------------------------------------
AutoIt AutoIt.AutoIt 3.3.16.1 winget
ISN AutoIt Studio isnetwork.ISNAutoItStudio 1.14 Tag: autoit winget
この結果から、IDが確認できましたので、ID指定でインストールを進めます。
winget install AutoIt.AutoIt
途中で管理者権限の確認が発生しましますが、そこでOKを押すと正常にインストールされます。
見つかりました AutoIt [AutoIt.AutoIt] バージョン 3.3.16.1
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
Downloading https://www.autoitscript.com/files/autoit3/autoit-v3-setup.exe
██████████████████████████████ 12.9 MB / 12.9 MB
インストーラーハッシュが正常に検証されました
パッケージのインストールを開始しています...
インストールが完了しました
gsudoのインストール
Linuxのsudoコマンドのように一時的に管理者権限を付与するコマンドをインストールしておきます。
winget install gerardog.gsudo
AutoIt用拡張機能のインストール
PoweShellのコンソールか、WindowsTerminalで下記のスクリプトを実行することで、ChromerWebDriverが利用できる環境が設定されます。
なお、設定の手順についてはAutoItでChromeを操作するを参考にさせて頂いています。
判りやすい情報を残していただきありがとうございます。
# ==== 共通 ====
# 解凍用の作業ディレクトリとして、C:\temp を利用しています。
$AutoItPath = 'C:\Program Files (x86)\AutoIt3'
$IncludePath = "$AutoItPath\Include"
# Program Files(x86)以下にアクセスするため管理者権限を付与(要画面操作)
gsudo
# ==== WebDriverライブラリ ====
# githubからrawファイルをIncludeフォルダにコピー
curl.exe -Lo "$IncludePath\wd_capabilities.au3" https://raw.githubusercontent.com/Danp2/au3WebDriver/master/wd_capabilities.au3
curl.exe -Lo "$IncludePath\wd_cdp.au3" https://raw.githubusercontent.com/Danp2/au3WebDriver/master/wd_cdp.au3
curl.exe -Lo "$IncludePath\wd_core.au3" https://raw.githubusercontent.com/Danp2/au3WebDriver/master/wd_core.au3
curl.exe -Lo "$IncludePath\wd_demo.au3" https://raw.githubusercontent.com/Danp2/au3WebDriver/master/wd_demo.au3
curl.exe -Lo "$IncludePath\wd_helper.au3" https://raw.githubusercontent.com/Danp2/au3WebDriver/master/wd_helper.au3
# ==== JSON UDF ====
$strFileName = '_Json(2021.11.20).zip'
$strFilePath = "C:\temp\$strFileName"
$strDistPath = "$strFilePath".Replace('.zip','')
curl.exe -Lo "$strFilePath" https://www.autoitscript.com/forum/applications/core/interface/file/attachment.php?id=69571
Expand-Archive -Path "$strFilePath" -DestinationPath ”$strDistPath”
Copy-Item -Filter *.au3 -Path "$strDistPath\*" -Destination "$IncludePath"
# ==== WinHTTP UDF ====
# 処理対象ファイル名
$strFileName = '1.6.4.1.zip'
$strFilePath = "C:\temp\$strFileName"
# ディレクトリが二重にで生成されるのを回避するため、ファイル名を除去
$strDistPath = "$strFilePath".Replace('1.6.4.1.zip','')
# githubからダウンロード
curl.exe -Lo "$strFilePath" https://github.com/dragana-r/autoit-winhttp/releases/download/1.6.4.1/1.6.4.1.zip
# ダウンロードしたファイルを解凍
Expand-Archive -Path "$strFilePath" -DestinationPath ”$strDistPath”
# 解凍先のディレクトリ名をファイル名から付与
$strFilePath = "C:\temp\$strFileName"
# ディレクトリ名に不要な".zip"を除去
$strDistPath = "$strFilePath".Replace('.zip','')
# ファイル(*.au3)をAutoIt3のInculdeディレクトにコピーする
Copy-Item -Filter *.au3 -Path "$strDistPath\*" -Destination "$IncludePath"
# ==== ChromeWebDriver ====
# https://sites.google.com/chromium.org/driver/ より最新版ダウンロードしてください
# 処理対象ファイル名
$strFileName = 'chromedriver_win32.zip'
$strFilePath = "C:\temp\$strFileName"
curl.exe -Lo "$strFilePath" https://chromedriver.storage.googleapis.com/108.0.5359.71/chromedriver_win32.zip
# 解凍先のディレクトリ名をAutoItのインストール先に設定
$strFilePath = "C:\temp\$strFileName"
# 解凍先のディレクトリ名をAutoItのインストール先に設定&ディレクトリ名に不要な".zip"を除去
$strDistPath = "$AutoItPath\$strFileName".Replace('.zip','')
# ダウンロードしたファイルを解凍
Expand-Archive -Path "$strFilePath" -DestinationPath ”$strDistPath”
このスクリプトを実行するとChromeDriver(108.0.5359.71)が、"C:\Program Files (x86)\AutoIt3\chromedriver_win32\chromedriver.exe"にコピーされます。
※AutoItのスクリプトを作成する際に必要になります。
具体的な作成例はまた後日。
Discussion