【2019年度版】Seleniumで最近のEdgeのUIテストをしようとして色々モヤッとした話


背景

Webアプリを開発してた
対象ブラウザに Edge が入ってた
Selenium を使ってUIテストを自動化したいとなった

問題点

Aさんの環境で動いていたSeleniumによるUIテストが、なぜか私の環境でエラーになる。
エラー内容

OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://localhost:65382/session. 
The status of the exception was UnknownError, and the message was: An error occurred while sending the request. 
Unable to read data from the transport connection: 既存の接続はリモート ホストに強制的に切断されました。

What's?

原因

自分のPCにインストールされているEdgeのバージョンと、
Seleniumで使われているEdge用のWebDriverのバージョンが違うことで上記エラーが発生していた。
参考記事:https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/17578227/

解決方法

「じゃあ、自分のPCのEdgeのバージョンと、Seleniumで使われているEdge用のWebDriverのバージョンを揃えよう」
ということでサクッと対応しようと思ったが、

やり方が分かりにく過ぎてモヤッとした・・・

自分のPCにインストールされているEdgeと同じバージョンのEdge用WebDriver を手に入れる方法を紹介します。

① MicrosoftのWebDriver置き場から、自分のPCのEdgeのバージョンに合ったものをダウンロード
 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
 

 自分のPCのEdgeのバージョンの確認のしかた
 https://support.microsoft.com/ja-jp/help/4027011/microsoft-edge-find-out-which-version-you-have
 

 ここで、同じバージョンが見つかった方(Edge17以下)、無事入手できました。
 見つからなかった方(Edge18以上)、次へ進んで下さい。

② Windowsに追加された機能でインストールして入手する
 https://blogs.msdn.microsoft.com/osamum/2018/10/04/new-feature-of-edgehtml/
 

 上記のように、Windowsの「設定」⇒「アプリ」⇒「アプリと機能」⇒「オプション機能」を開いて、
 機能の追加で、Microsoft WebDriver を選択してインストール
 

 保存されたMicrosoftWebDriver.exe が、C:\Windows\System32 の直下に置いてあります。

 ※フォルダじゃなくてファイルなので注意
 

それをSelenium実行フォルダ下にコピーするなり、パスを通すなりする。
※既にEdge17用等のWebDriverが配置されていたら置き換えること

これで通るようになりました。

なんでこんな解りにくいところに置いてあるんだ・・・。

参考になったら「いいね」を押していただけると嬉しいです。
最近のWindowsにおいて、SeleniumでEdgeのテストをしようとしてモヤッとする人が減ることを祈っております。