Seleniumを使用しており、
selenium.common.exceptions.SessionNotCreatedExceptionエラーが出たので対処法をメモ
Chromeバージョン129以降でヘッドレスモードを使用する際に下記対応している方は試してみてください。
options.add_argument('--headless=old')
結論
Google Chromeは自動アップデートされるブラウザ(エバーグリーンブラウザ)のため、
アップデートに気づかず、オプションを使用できないことが原因でした。
options.add_argument('--headless=old')
↓
options.add_argument('--headless')
とすることで私の場合は解決しました。
下記、解決までの流れを備忘録として書いておきます。
実行環境
Windows 11
Python 3.12
エラー時のコード(一部抜粋)
options = webdriver.ChromeOptions()
options.add_argument("--log-level=3")
options.add_argument('--headless=old')
driver = webdriver.Chrome(options=options)
driver.get('https://https://www.google.com/')
エラー内容
Traceback (most recent call last):
File "C:\Users\USER_NAME\Downloads\toolname\my_tool\script.py", line 56, in <module>
driver = webdriver.Chrome(options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER_NAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
super().__init__(
File "C:\Users\USER_NAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 66, in __init__
super().__init__(command_executor=executor, options=options)
File "C:\Users\USER_NAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 250, in __init__
self.start_session(capabilities)
File "C:\Users\USER_NAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 342, in start_session
response = self.execute(Command.NEW_SESSION, caps)["value"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\USER_NAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 429, in execute
self.error_handler.check_response(response)
File "C:\Users\USER_NAME\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 232, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: was killed.
(session not created: DevToolsActivePort file doesn't exist)
(The process started from chrome location C:\Program Files\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
GetHandleVerifier [0x00007FF627444C25+3179557]
(No symbol) [0x00007FF6270A88A0]
(No symbol) [0x00007FF626F391CA]
(No symbol) [0x00007FF626F75F3B]
(No symbol) [0x00007FF626F71CCD]
(No symbol) [0x00007FF626FC5E8B]
(No symbol) [0x00007FF626FC5460]
(No symbol) [0x00007FF626FB7A03]
(No symbol) [0x00007FF626F806D0]
(No symbol) [0x00007FF626F81983]
GetHandleVerifier [0x00007FF6274A67CD+3579853]
GetHandleVerifier [0x00007FF6274BD1D2+3672530]
GetHandleVerifier [0x00007FF6274B2153+3627347]
GetHandleVerifier [0x00007FF62721092A+868650]
(No symbol) [0x00007FF6270B2FFF]
(No symbol) [0x00007FF6270AF4A4]
(No symbol) [0x00007FF6270AF646]
(No symbol) [0x00007FF62709EAA9]
BaseThreadInitThunk [0x00007FFDF642E8D7+23]
RtlUserThreadStart [0x00007FFDF869BF6C+44]
selenium.common.exceptions.SessionNotCreatedExceptionのエラーが出たときは、
Google ChromeとWebdriverのバージョンの不整合によることが多いそうです。
ChromeとWebDriverアップデートをしてみる
Chromeバージョン: 134.0.6998.166(Official Build) (64 ビット)
WebDriverはSelenium Manager により自動でドライバーを取得。
→上記エラー発生(ドライバーが問題か未確定)
オプションを無効にする
options = webdriver.ChromeOptions()
#options.add_argument("--log-level=3")
#options.add_argument('--headless=old')
#driver = webdriver.Chrome(options=options)
driver = webdriver.Chrome()
driver.get('https://https://www.google.com/')
→正常にページが開かれた(ドライバーに問題がないことを意味する)
ヘッドレスモードの記述を変更する
options = webdriver.ChromeOptions()
options.add_argument("--log-level=3")
options.add_argument('--headless') ## '--headless=old'から変更
driver = webdriver.Chrome(options=options)
driver.get('https://https://www.google.com/')
→へッドレスモードで正常動作した(ヘッドレスモードの記述に問題があることを意味する)
実はちゃんとアナウンスされていた
Removing --headless=old from Chromeによると、Chromeバージョン132以降では
options.add_argument('--headless-old')
と記述するとヘッドレスモードで起動する代わりに役立つエラーメッセージを表示すると書いていました。
まとめ
・エラー時の調べ力と周辺知識をもっと身に着けなければいけないとおもいm