注目キーワード
  1. Photoshop
  2. Python
  3. Raspberry Pi
  4. Arduino

ChromeDriver only supports Chrome version ※※の対処方法とseleniumとの組み合わせ

ここでは「Python」で使用する「ChromeDriver-binary」のバージョン更新方法について紹介します。

 

この記事を読むことで

ChromeDriver-binaryのバージョン更新

seleniumと組み合わせた便利な機能

を知ることができます。

 

当サイトに訪れた方は、Pythonプログラムを実行したら

chrome-driver-v-01

すなわち
ChromeDriver only supports Chrome version ※※

と表示され

taku
プログラムが実行しなくなった!

と焦っているのではないでしょうか?

 

今回はこのバージョン違いによって動作しなくなった原因と対処方法について解説をします。

それでは始めていきましょう。

 

ChromeDriver only supports Chrome versionの対処方法

現在使っているChromeDriverのバージョン確認、Google Chromeのバージョン確認、バージョン対応の順に解説を行っていきます。

 

Chromedriver-binaryの現在のバージョンを確認する

まずはバージョン確認エラーを確認しましょう。

 

エラー内容は

This version of ChromeDriver only supports Chrome version 85

と表示され「ChromeDriverはバージョン85しか対応していない」ということが分かります。

chrome-driver-v-02

 

実際にインストールされているChromeDriverのバージョンを

pip show chromedriver-binary

で確認してみると、確かに

バージョン:85.0.4183.83.0

と分かります。

 

したがって、エラーの原因は

使用しているGoogleChromeのバージョンとDLされているChromeDriverのバージョンが違うため

生じているものだと考えられます。

 

Google Chromeのバージョンを確認する

続いて、原因がバージョン違いということで「Google Chromeのバージョン」も確認してみます。

 

Google Chromeを開き

設定 > ヘルプ(H) > Google Chromeについて(G)

を選択しましょう。

chrome-driver-v-03

 

すると、上図のようにGoogle Chromeのバージョンを確認することができます。

僕の使用しているGoogle Chromeは

バージョン:87.0.4280.66

と分かりますね。

 

ChromeDriverのバージョンと見比べると確かにバージョンが違うことがわかります。

 

サポートされているChromedriver-binaryをDLする

では早速Google ChromeのバージョンにあったChromeDriverをダウンロードしていきましょう。

pip install chromedriver-binary==87.0.4280.66
とコマンドラインに入力しChromeDriverのバージョンを指定してインストールしましょう。
インストールができず、下図のようなエラーが表示されてしまった場合は

chrome-driver-v-04

ChromeDriver-binaryがサポートしていないバージョンということになります。

 

したがって

ERROR:Could not find a version that satisfies the requirement chromedriver-binary ==※※
の中から、GoogleChromeのバージョンに近いバージョンを見つけてダウンロードしましょう。
今回は「87.0.4280.66」と近い「87.0.4280.20.0」を選び
pip install chromedriver-binary==87.0.4280.20.0
としてダウンロードしました。

chrome-driver-v-05

 

ダウンロードできたら、chromedriverのバージョンが更新されているかを

pip show chromedriver-binary

で確認し、更新が確認できたら再度プログラムを実行してみましょう。

無事、プログラムが動作すれば成功です。

 

おまけ~seleniumと組み合わせた便利機能

ここからはおまけ程度に、ChromeDriverを使うなら、この機能も使うと便利だよ!というものを記載しておきます。

(本音はミラーサイト対策ですが…(-ω-)/)

 

Chromeをヘッドレスモードで動作

chromedriverを扱う上で、必ず知っておいて欲しいのがこの「ヘッドレスモード」と呼ばれる動作方法です。

このモードで動作を実行すると

GoogleChromeをウィンドウに表示せずに動作

させることができます。

 

GoogleChromeのウィンドウを表示せずに動作させることの利点として

・モニターのスペースを余分に取らない・スクリーンショットの撮影が容易

・スローテスト問題(実行時間の影響)の軽減

などが挙げられます。

 

したがって、今後chromedriverを使った自動化・スクレイピングを続けるのであれば、是非覚えておきたい機能の一つになります。

ヘッドレスモードにする方法は簡単で

# coding: UTF-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary

# chromedriverを指定
options = Options()
#options.add_argument('--headless')    #ヘッドレスモードで起動
#options.add_argument('--disable-gpu')    #ヘッドレスモードで暫定的に必要

driver = webdriver.Chrome(chrome_options=options)

と記述することで可能となります。

 

chromedriver-options

動作確認をしてみると、確かに「chrome_options=options)」で実行されていることがわかります。

是非一度試してみてください。

 

GoogleChromeのウィンドウサイズの指定

chrome.optionsには、GoogleChromeを開く時のウィンドウサイズを予め指定することが可能です。

記述内容は

全画面表示:options.add_argument(‘–start-maximized’)表示サイズ指定:options.add_argument(‘–window-size=1920,1080’)

となります。

 

ヘッドレスモードではなく、指定画面サイズで動作を実行させたい場合はこちらを使うと便利かと思います。

ウィンドウサイズ指定時のプログラム

# coding: UTF-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import chromedriver_binary

# chromedriverを指定

options = Options()

options.add_argument('--start-maximized')    #全画面で起動
#options.add_argument('--window-size=1920,1080')    #1920×1080のウィンドウサイズで起動

driver = webdriver.Chrome(chrome_options=options)

 

今回は、ここまで!

chromedriverのバージョンについてご理解・満足頂ければ幸いです。

お疲れ様でした。

chromedriver-only-supports-top
学びに関する情報をチェック!