2020年12月2日水曜日

SeleniumのChromeDriverの更新方法(SessionNotCreated)

 Webページの取得はサーバにリクエスト送付する方法以外にも、ブラウザのソースを解析する方法もあります。

こちらだと、ヘッダ情報やらトークンに対してのプログラム解析が不要なので、単純な処理ならこっちの方が良いかな。


で、Chromeのソース取得には、SeleniumとChromeDriverを使用しますが、最近エラーが出ていました。


ソースは以下のような感じ


var driver = new ChromeDriver(Service, options);


で、例外のメッセージはこんな感じ

System.InvalidOperationException: session not created: This version of ChromeDriver only supports Chrome version 83 (SessionNotCreated)


ChromeDriverがChromeとバージョンがあってないよ、というメッセージですね。

ChromeのバージョンはChromeの右上のボタンから、

ヘルプ→Google Chromeについて を選択すれば確認できます。


僕の場合はversion87なので、ChromeDriverとズレてますね。



ChromeDriverはNugetから取得したかったのですが、version85までしか提供されていませんでした。


なので、ChromeDriverのサイトからChromeを同じバージョンを取得しました。

ダウンロードしたchromedriver.exeをNugetのパッケージとプログラム実行フォルダに上書きすれば、ちゃんと動いてくれました♪


今回は無理やり更新してみましたが、Chromeのバージョンアップのたびに必要になる作業です。

なので、実際はちゃんと画面にエラーメッセージ出すようにするとか、なんらかの工夫をすべきですねぇ