古いChromeDriverを更新する、もしくはアップデートする

古いChromeDriverを更新する、もしくはアップデートしてみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■過去に作ったスクリプトを実行するとエラー発生

PythonでSeleniumを使用し、Chromeブラウザを自動操作するというスクリプトを作ってみましたが、久しぶりにこのスクリプトを動かしてみます。

■実行

DevTools listening on ws://127.0.0.1:61785/devtools/browser/a3b36634-2682-440e-a392-7fc7a06cd15c
Traceback (most recent call last):
File "C:\Users\user\chrome-test.py", line 4, in <module>
driver = webdriver.Chrome()
File "C:\pg\Python38\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 76, in __init__
RemoteWebDriver.__init__(
File "C:\pg\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\pg\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\pg\Python38\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\pg\Python38\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 89.0.4389.82 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

実行してみるとエラーが発生し原因と調べてみると、GoogleChromeのデスクトップ版のバージョン89.0.4389.82がリリースされたことにより、今回のPC環境にインストールしていたChromeDriverが、バージョン87しか対応していないことが判明する。

■古いChromeDriverを更新する、もしくはアップデートする

判明後、古いChromeDriverを更新する、もしくはアップデートします。そのために、今回はPythonのバージョンを切り替えます。

py -3.8 -m pip install chromedriver-binary==89.0.4389.82

切り替えるためには、Windowsのコマンドプロンプトを起動し、上記のコマンドを入力し、Enterキーを押します。

ERROR: Could not find a version that satisfies the requirement chromedriver-binary==89.0.4389.82 (from versions: 2.29.1, 2.31.1, 2.33.1, 2.34.0, 2.35.0, 2.35.1, 2.36.0, 2.37.0, 2.38.0, 2.39.0, 2.40.1, 2.41.0, 2.42.0, 2.43.0, 2.44.0, 2.45.0, 2.46.0, 70.0.3538.16.0, 70.0.3538.67.0, 70.0.3538.97.0, 71.0.3578.30.0, 71.0.3578.33.0, 71.0.3578.80.0, 71.0.3578.137.0, 72.0.3626.7.0, 72.0.3626.69.0, 73.0.3683.20.0, 73.0.3683.68.0, 74.0.3729.6.0, 75.0.3770.8.0, 75.0.3770.90.0, 75.0.3770.140.0, 76.0.3809.12.0, 76.0.3809.25.0, 76.0.3809.68.0, 76.0.3809.126.0, 77.0.3865.10.0, 77.0.3865.40.0, 78.0.3904.11.0, 78.0.3904.70.0, 78.0.3904.105.0, 79.0.3945.16.0, 79.0.3945.36.0, 80.0.3987.16.0, 80.0.3987.106.0, 81.0.4044.20.0, 81.0.4044.69.0, 81.0.4044.138.0, 83.0.4103.14.0, 83.0.4103.39.0, 84.0.4147.30.0, 85.0.4183.38.0, 85.0.4183.83.0, 85.0.4183.87.0, 86.0.4240.22.0, 87.0.4280.20.0, 87.0.4280.87.0, 87.0.4280.88.0, 88.0.4324.27.0, 88.0.4324.27.1, 88.0.4324.96.0, 89.0.4389.23.0, 90.0.4430.24.0)
ERROR: No matching distribution found for chromedriver-binary==89.0.4389.82

Enterキーを押すと、エラーが発生しました。エラーの内容を確認すると、「要件を満たすバージョンが見つかりませんでした」という内容で、今回入力したコマンドで「chromedriver-binary==89.0.4389.82」の部分が要件を満たすものではないので、エラーの内容の「from versions:」に記載された中から「89.0.4389.82」に近い「89.0.4389.23.0」に変更する。

py -3.8 -m pip install chromedriver-binary==89.0.4389.23.0

コマンドの内容を上記に変更し、コマンドプロンプトに入力し、再度Enterキーを押す。

Collecting chromedriver-binary==89.0.4389.23.0
Downloading chromedriver-binary-89.0.4389.23.0.tar.gz (4.3 kB)
Using legacy 'setup.py install' for chromedriver-binary, since package 'wheel' is not installed.
Installing collected packages: chromedriver-binary
Attempting uninstall: chromedriver-binary
Found existing installation: chromedriver-binary 87.0.4280.88.0
Uninstalling chromedriver-binary-87.0.4280.88.0:
Successfully uninstalled chromedriver-binary-87.0.4280.88.0
Running setup.py install for chromedriver-binary ... done
Successfully installed chromedriver-binary-89.0.4389.23.0

Enterキーを押すと、古いChromeDriverがアンイストールされ、今回指定した新しいChromeDriverのインストールが開始されます。開始後、「Successfully installed chromedriver-binary」と表示されれば、正常にインストール(アップデート)は完了となります。

■コード

import time
from selenium import webdriver
import chromedriver_binary
driver = webdriver.Chrome()
driver.get("https://www.google.com/")
time.sleep(5)
search_box = driver.find_element_by_name("q")
search_box.send_keys('トマト')
search_box.submit()
time.sleep(5)
driver.quit()

完了後、上記のスクリプトを実行してみると、Chromeブラウザを自動操作することができることを確認する。

コメント

タイトルとURLをコピーしました