古い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ブラウザを自動操作することができることを確認する。
コメント