WebDriverを経由してMicrosoft Edgeの操作を自動化することができれば、これまで人が作業していた部分を大幅に自動化できる。ただし、WebDriverで操作可能なMicrosoft Edgeを毎回問題なく起動するには、Microsoft Edgeとバージョンを一致させたドライバが必要になる。毎回手動でドライバを一致させるのは手間なので、まずこの部分を自動的に処理するスクリプトを作ろう。
WebDriver経由でMicrosoft Edgeを起動する手順
WebDriver経由でMicrosoft Edgeを起動するには、PowerShellにSeleniumモジュールをインストールする必要がある。まずは次のようにInstall-Moduleコマンドレットを実行し、PowerShell Seleniumモジュールをインストールする。
Install-Module -Name Selenium -AllowPrerelease -Force
プレビュー版をインストールすることになるので「-AllowPrerelease -Force」というパラメータを指定しているのがポイントだ。
次に、その時点でインストールされているMicrosoft Edgeのバージョンと同じバージョンのWebDriverドライババイナリを用意する必要がある。それには、バージョン情報を取得しなければならない。方法はいくつかあるが、簡単なのは次のようにディレクトリ名を使う方法だと思う。
PS C:\Users\daichi> Get-ChildItem -Name 'C:\Program Files (x86)\Microsoft\Edge\Application\'
107.0.1418.35
SetupMetrics
delegatedWebFeatures.sccd
msedge_proxy.exe
msedge.exe
msedge.VisualElementsManifest.xml
pwahelper.exe
PS C:\Users\daichi>
「C:\Program Files (x86)\Microsoft\Edge\Application\」以下には、そのMicrosoft Edgeのバージョン番号と同じ名前のディレクトリが作成されている。これをそのまま使うのだ。PowerShellでは、次のように実行すれば該当するバージョン番号だけを得ることができる。
PS C:\Users\daichi> Get-ChildItem -Name 'C:\Program Files (x86)\Microsoft\Edge\Application\' | Where-Object { $_ -NotMatch "[a-zA-Z]+" }
107.0.1418.35
PS C:\Users\daichi>
バージョン番号がわかったら、このバージョンに対応したWebDriverバイナリをダウンロードする。ドライバは「https://msedgedriver.azureedge.net/バージョン番号/edgedriver_win64.zip」といったURLで取得できるようになっている。
WebDriverのドライババイナリはどこにデプロイしてもよいのだが、今回のようにPowerShell Seleniumモジュールを使う場合には、デフォルトで「C:\Users\ユーザー名\Documents\powershell\Modules\Selenium\4.0.0\assemblies\」の「msedgedriver.exe」が使われるようになっているので、そのままこのファイルを上書きしてしまえばよいだろう。
PS C:\Users\daichi> dir .\Documents\powershell\Modules\Selenium\4.0.0\assemblies\
Directory: C:\Users\daichi\Documents\powershell\Modules\Selenium\4.0.0\assemblies
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2022/10/13 13:19 linux
d---- 2022/10/13 13:19 macos
-a--- 2022/09/24 4:50 12095488 chromedriver.exe
-a--- 2021/03/07 14:57 65 chromedriver.exe.sha256
-a--- 2021/03/07 14:57 3531472 geckodriver.exe
-a--- 2021/03/07 14:57 65 geckodriver.exe.sha256
-a--- 2021/03/07 14:57 3420672 IEDriverServer.exe
-a--- 2021/03/07 14:57 65 IEDriverServer.exe.sha256
-a--- 2022/10/10 6:48 15723472 msedgedriver.exe
-a--- 2021/03/07 14:57 65 msedgedriver.exe.sha256
-a--- 2021/03/07 14:57 1783808 WebDriver.dll
-a--- 2021/03/07 14:57 65 WebDriver.dll.sha256
-a--- 2021/03/07 14:57 52224 WebDriver.Support.dll
-a--- 2021/03/07 14:57 65 WebDriver.Support.dll.sha256
PS C:\Users\daichi>
先ほどダウンロードしてきたzipファイルを展開すると、中にWebDriverのバイナリファイルが入っている。これを~\Documents\powershell\Modules\Selenium\4.0.0\assemblies\にコピーしてファイルを上書きしてしまえば準備は完了だ。