Llama-2が登場!8bit+LoRAでRLHFファインチューニングを試す方法はこちら

【Python】seleniumでSessionNotCreatedException:This version of ChromeDriver only supports Chrome version~とエラーが出る場合の解決方法を解説!

selenium3またはselenium4を使ってスクレイピングや操作自動化をしているけど、少し経つとブラウザのバージョンが自動的に上がってエラーが出るので、それに合わせたドライバーを毎回ダウンロードしていませんか?

今回は、そんな手間をなくすライブラリを紹介します。

目次

WebDriverを自動更新するwebdriver_managerをインストールしよう!

webdriver_managerは、ブラウザのバージョンに合わせたドライバーのダウンロード作業を自動で行ってくれます。

まずは、インストールする必要があります。

pip install webdriver-manager

参考までに、私がインストールした時点でのバージョンは3.5.4でした。

Successfully installed~

上記のようにインストールに成功しましたと出たら成功です。

対応しているブラウザ

使い方を見る前に、対応しているブラウザは以下の通りです。

  • Chrome
  • Chromium
  • Brave
  • Firefox
  • IE
  • Edge
  • Opera

では、それぞれのブラウザでの自動ダウンロードするためのコードを見ていきましょう。

各ブラウザでのコード

例えばchromeなら、これまでは次のようなコードだったと思います。

from selenium import webdriver
driver = webdriver.Chrome("driver_path")

今回はこの部分を変えることでエラーをなくします。

では、各ブラウザでの変更したコードを見ていきます。

Chrome

selenium 3の場合

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# 自動でバージョンに合ったドライバーをインストールする
driver = webdriver.Chrome(ChromeDriverManager().install())

selenium 4の場合

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager

# 自動でバージョンに合ったドライバーをインストールする
driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))

Chromium

selenium 3の場合

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install())

selenium 4の場合

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromiumService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()))

Brave

selenium 3の場合

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install())

selenium 4の場合

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as BraveService
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.utils import ChromeType

driver = webdriver.Chrome(service=BraveService(ChromeDriverManager(chrome_type=ChromeType.BRAVE).install()))

Firefox

selenium 3の場合

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

selenium 4の場合

from selenium import webdriver
from selenium.webdriver.firefox.service import Service as FirefoxService
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(service=FirefoxService(GeckoDriverManager().install()))

IE

selenium 3の場合

from selenium import webdriver
from webdriver_manager.microsoft import IEDriverManager

driver = webdriver.Ie(IEDriverManager().install())

selenium 4の場合

from selenium import webdriver
from selenium.webdriver.ie.service import Service as IEService
from webdriver_manager.microsoft import IEDriverManager

driver = webdriver.Ie(service=IEService(IEDriverManager().install()))

Edge

selenium 3の場合

from selenium import webdriver
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(EdgeChromiumDriverManager().install())

selenium 4の場合

from selenium import webdriver
from selenium.webdriver.edge.service import Service as EdgeService
from webdriver_manager.microsoft import EdgeChromiumDriverManager

driver = webdriver.Edge(service=EdgeService(EdgeChromiumDriverManager().install()))

Opera

selenium 3、selenium 4どちらの場合も

from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager

driver = webdriver.Opera(executable_path=OperaDriverManager().install())

Operaブラウザが、WindowsではC:/Program FilesまたはC:/Program Files (x86)、Unix系およびMacでは/usr/bin/opera以外の場所にインストールされている場合

from selenium import webdriver
from webdriver_manager.opera import OperaDriverManager

options = webdriver.ChromeOptions()
options.add_argument('allow-elevated-browser')
options.binary_location = "C:\\Users\\USERNAME\\FOLDERLOCATION\\Opera\\VERSION\\opera.exe"
driver = webdriver.Opera(executable_path=OperaDriverManager().install(), options=options)

コードを実行しよう!

実行すると、次のようなログが流れます。

[WDM] - ====== WebDriver manager ======
2022-07-05 16:06:43,547 INFO ====== WebDriver manager ======
[WDM] - Current google-chrome version is 103.0.5060
2022-07-05 16:06:43,549 INFO Current google-chrome version is 103.0.5060
...

後は、これまで通りのコードで大丈夫です。

まとめ

今回は、seleniumを使っていれば一度は遭遇するエラーを解決できるライブラリを紹介しました。

これで、さらに効率化が図れるのではないでしょうか?

ぜひ、使ってみてください!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次