まずSeleniumとは
WEBブラウザの操作を自動化するためのフレームワークでWEBアプリケーションの UI テストを自動化する目的で開発されたそうで
主な使い道としてRPA的にブラウザ操作を自動化させたりその流れでスクレイピングしたりとか
Java、Python、Ruby 等の主要なプログラミング言語で使える他、EXCELなどのVBAでも使える守備範囲でブラウザもChrome、Edge、Firefox、IEとこちらも完璧と言える守備範囲
※個人的にはChrome使えれば十分、と言うかChromeしか使わない
オープンソースで無料利用できるところも魅力の一つ
で、そのSeleniumをVBAで使えるようにするためのツールがSeleniumBasic(って認識でいいと思う)
SeleniumBasicのインストール方法
インストーラーのダウンロード
↓↓のGithubからSeleniumBasicのインストーラーをダウンロード
最終更新が2016年3月と古くても問題なし
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
インストーラーの実行
SeleniumBasic特有ってわけではないですが、管理者としてインストーラーを実行するかユーザーとして実行(普通にダブルクリック)するかでインストール先フォルダが変わります
利用する上ではどちらでも大したは影響ないですが”chromedriver.exe”の保存先にもなるのでお気をつけください
右クリックから「管理者として実行」
改めてここからインストール手順
最初の画面は無心で「Next」
ライセンス契約について
気になる人は一読してラジオを「I accept the agreement」移して「Next」
インストールする対象を選択をご自由に※Chromeだけあればいいかなと
最終確認画面
ココにインストール先のフォルダが表示されているのでチェック
サンプルは管理者インストールなので「C:\Program Files\SeleniumBasic」
ユーザーだと「C:\Users\<ユーザー名>\AppData\Local\SeleniumBasic」
無事完了
ChromeDriverの更新
インストールした直後のChromeDriverだとVBAから怒られます
ChromeDriverの特徴として日頃使ってるChromeのバージョンに合わせたドライバーが必要で、初期のドライバーが古すぎてバージョンが合わないよってこと
まず今使っているChromeのバージョンの調べ方は
「Chrome右上の︙ → ヘルプ → Google Chromeについて」設定画面を開くと見れる
続いて↓↓から今使っているChromeのバージョンに合わせたドライバーをダウンロード
もしCurrent Releasesの中になかったら下部にも古いバージョンがあるのでそこからダウンロード
https://sites.google.com/chromium.org/driver/downloads
使っているPC環境に合わせてドライバーをダウンロード
Windowsは32bitも64bitもwin32でOK
https://googlechromelabs.github.io/chrome-for-testing/#stable
chromedriverでOSに合わせてURLを直接叩いてダウンロードを
ダウンロードしたzipを解凍すると「chromedriver.exe」が取得できるのでSeleniumBasicをインストールしたフォルダにあるドライバーを上書き更新
.NET Framework 3.5をインストール
.NET Framework 3.5がないとインスタンスを作ろうとしたときにオートメーションエラーが発生するので対応する
正攻法でMicrosoftのWEBサイトからダウンロードしてインストールする場合はコチラから
https://www.microsoft.com/ja-jp/download/details.aspx?id=21
他に簡単な方法としてSeleniumBasicフォルダ内のScriptsフォルダにある「StartChrome.vbs」を実行してあげればエラーメッセージとともに.NET Framework 3.5のインストール画面が出てくるのでそのままインストールしてあげるだけ
既に.NET Framework 3.5がインストールされている場合は空のChromeが立ち上がってメッセージが出てくる
ちなみにStartChrome.vbsの中身はこれだけ
「Set driver = CreateObject(“Selenium.ChromeDriver”)」で発生するエラーに反応して.NET Framework 3.5のインストールを促してくれるんだろうから「流石MS!」と思いつつ、「だったらVBAでもそうしてくれよ・・・」と不満を吐いてみる
Set driver = CreateObject("Selenium.ChromeDriver")
driver.Start
WScript.Echo "Click OK to quit"
driver.Quit
あとがき
VBAの場合はここまでやって利用準備完了
ちなみにChromeDriverの更新は結構頻度が高くて面倒なのでプログラムでチェックした方が吉
私自作のプログラム公開しているので気になる方はこちらへどうぞ!
コメント