Microsoft EdgeをWebDriver経由で操作できるのはとても便利なのだが、立て続けにドライバを実行すると、もういらないバイナリが背後で動き続けることがある。リソースの無駄遣いなので、こうした問題の種は最初に処理しておこう。

→連載「意外と知らないMicrosoft Edgeの便利な使い方」の過去回はこちらを参照。

WebDriverを使った起動方法と停止方法

前回までに説明したように、PowerShell SeleniumモジュールからWebDriver経由でMicrosoft Edgeを操作する場合、次のように「Start-SeDriver」コマンドレットを起動してドライバ経由でMicrosoft Edgeを起動する。

PS C:\Users\daichi> Start-SeDriver -Browser Edge -Size '1200,800'

SeFriendlyName                   SeBrowser SeTitle SeUrl
--------------                   --------- ------- -----
804e775a3b606ede2f666c67f6d1227d Edge *            data:,

PS C:\Uses\daichi>

この処理で、次のようにWebDriver経由で操作されているMicrosoft Edgeが起動してくる。

  • WebDriver経由で操作可能なMicrosoft Edge

    WebDriver経由で操作可能なMicrosoft Edge

このようにして起動したMicrosoft Edgeは、「Stop-SeDriver」コマンドレットを実行することで終了することができる。

PS C:\Users\daichi> Stop-SeDriver
PS C:\Users\daichi>

Stop-SeDriverコマンドレットを実行すると、Microsoft Edgeと、それに付随して起動したWebDriverのドライババイナリも終了される。これが適切に終了処理を行った場合の動きだ。

停止中

WebDriver経由でMicrosoft Edgeを起動すると、Microsoft EdgeのみならずWebDriverドライバも起動してくる。このドライバは「msedgedriver.exe」というファイル名になっている。

試しに、Stop-SeDriverコマンドレットを実行して正常に処理が完了した状態で次のようにコマンドレットを実行しても、「msedgedriver.exe」の実行を確認することはできない。

PS C:\Users\daichi> Get-Process -Name msedgedriver
Get-Process: Cannot find a process with the name "msedgedriver". Verify the process name and call the cmdlet again.
PS C:\Users\daichi>

この状態だとStop-SeDriverコマンドレットを実行しても処理は失敗する。すでに停止しているからだ。

PS C:\Users\daichi> Stop-SeDriver
MethodInvocationException: Exception calling "Close" with "0" argument(s): "disconnected: unable to connect to renderer   (failed to check if
window was closed: disconnected: unable to connect to renderer)   (Session info: MicrosoftEdge=107.0.1418.35)"

PS C:\Users\daichi>

常にこの状態に戻ればよいのだが、こうならないケースがある。

WebDriverドライバの実行が残ってしまうケース

この記事は
Members+会員限定記事です。

ログイン/会員登録する