【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のテストをしようとしてモヤッとする人が減ることを祈っております。
Author And Source
この問題について(【2019年度版】Seleniumで最近のEdgeのUIテストをしようとして色々モヤッとした話), 我々は、より多くの情報をここで見つけました https://qiita.com/ryoa912/items/8f53f5c81f59d2fb615e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .