久しぶりにPythonを使ってseleniumを使おうとしたところ以下のエラーが発生しました。
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 85
前にもみたことがあったので、はいはいとChromeDriverのバージョン通りのものを設置するもなおらない。
webdriver-managerを使う
最近はwebdriver-managerを使うらしいとのことでインストールしてみる。
pip install webdriver-manager
そしてPython側のコードも以下のように変更してみた。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())
するとこんなエラーがでる。
from webdriver_manager.driver import ChromeDriver
File “/Users/user/.pyenv/versions/3.5.0/lib/python3.5/site-packages/webdriver_manager/driver.py”, line 77
self.auth_header = {‘Authorization’: f’token {self._os_token}’}
調べるとPythonは3.6以上にするとこのsyntaxエラーは消えるよとのことだった。
現在のPythonのバージョンは3.5.0だった。
Pythonのバージョンをあげる
pyenvを使って最新と思われる3.7.4に上げようとしたら以下がでる。
BUILD FAILED (OS X 11.4 using python-build 20180424)
MacがM1でBig Surだとこの現象が起きている人が多いらしい。このエラーで検索して載っている解決策は一通り試したが、まったく改善されなかった。(x-codeとか)
もういいやとPythonを直接サイトからダウンロードしてパッケージを解凍してIDLEで作業しようと思ったら、今度はseleniumを認識してくれない。
ModuleNotFoundError: No module named ‘selenium’
なぜだ。IDLE側のshellは使いものにならないし(使い方しらないだけかもしれない)。
ターミナル上でPythonをダウンロードする方針に切り替えて再び調査。
pythonのバージョンがアップデートできないのはpyenvが原因だった
pyenvでダウンロードできる一覧を出した時にネット民の人より少ないことが気になっていたのでpyenv のアップグレードを試みる。
参考サイト:https://www.ganbaru.life/?p=990
いろいろなやり方があったが、上記サイトの方法以外ではアップデートできなかったのでなんとか命びろい。
pyenvのアップデートに成功したらPythonのバージョンも3.7.4以上がでてきたので最新の3.10.2にしてみた。
無事にインストールできた。
(3.7.4は同じBUILD FAILED (OS X 11.4 using python-build 20180424)がでた)
seleniumの再インストール
やっと前進したと思ったのもつかのまpythonを実行してみると再びこのエラーにあたる。
ModuleNotFoundError: No module named ‘selenium’
あらためて以下コマンドを実施
pip install selenium
また実行。今度はwebdriver-managerがないとのこと。
pip install webdriver-manager
やっと動いた。長かった。
おわり
環境を整えるだけで3時間かかってしまった。記事と言える内容でもないが、今後の備忘録のため残してみます。誰か同じ人が時間短縮できることを祈ります。