結論
ヘッドレスモードを設定しないままドライバーインスタンスでセッションを開始している可能性があります。Google Colaboratoryではヘッドレスモードでないとseleniumを使用できないため、設定されているか確認してみましょう。
エラーを再現
Google Colaboratoryで以下のコードを実行するとエラーが発生します。
.py
# ヘッドレスモードを設定していない
#options.add_argument('--headless')
# webdriverのimportや他のoptionのコードは割愛
with webdriver.Chrome("chromedriver", options = options) as driver:
driver.get('https://www.yahoo.co.jp/')
print(driver.page_source)
.log
WebDriverException Traceback (most recent call last)
<ipython-input-9-1e4e21a40d5d> in <cell line: 52>()
50
51 # webdriverのimportやoptionのコードは割愛
---> 52 with webdriver.Chrome("chromedriver", options = options) as driver:
53 driver.get('https://www.yahoo.co.jp/')
54 print(driver.page_source)
5 frames
/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
243 alert_text = value["alert"].get("text")
244 raise exception_class(message, screen, stacktrace, alert_text) # type: ignore[call-arg] # mypy is not smart enough here
--> 245 raise exception_class(message, screen, stacktrace)
WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally.
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Stacktrace:
#0 0x556347f817f9 <unknown>
#1 0x556347f213b3 <unknown>
#2 0x556347c69016 <unknown>
#3 0x556347c8c283 <unknown>
#4 0x556347c8889a <unknown>
#5 0x556347cc600a <unknown>
#6 0x556347cc0c93 <unknown>
#7 0x556347c92ce4 <unknown>
#8 0x556347c944d2 <unknown>
#9 0x556347f4d542 <unknown>
#10 0x556347f5cce7 <unknown>
#11 0x556347f5c9e4 <unknown>
#12 0x556347f6113a <unknown>
#13 0x556347f5d5b9 <unknown>
#14 0x556347f42e00 <unknown>
#15 0x556347f745d2 <unknown>
#16 0x556347f74778 <unknown>
#17 0x556347f8ca1f <unknown>
#18 0x7fbd42ac3609 start_thread
#19 0x7fbd41cd6133 clone
エラーの内容だけでは原因がすぐにわかりそうになく、戸惑ってしまいそうです。ですが、Google Colaboratoryではヘッドレスモードでないとseleniumが使用できないという点に注目するとそこが原因であると想像できそうです。
エラーを解決
ヘッドレスモードを入れてみます。
.py
# ヘッドレスモードを設定する
options.add_argument('--headless')
# webdriverのimportや他のoptionのコードは割愛
with webdriver.Chrome("chromedriver", options = options) as driver:
driver.get('https://www.yahoo.co.jp/')
print(driver.page_source)
これでエラーが解決し、実行できました。
ローカルのコードを移植したときなどは注意したほうが良さそうです。
補足
Google Colaboratoryでseleniumをインストールする方法については私の以前の記事が参考になります。
以上です。