seleniumのheadlessでプロファイルを使う際のエラー解消法

忘却メモ。
chromeでseleniumでヘッドレスモードを指定し、プロファイルを設定しようとしたら以下のエラーが出た。
解消法を探すのになかなか苦労したため、ここに記す。
■エラー発生した際のサンプルコード

options.add_argument('--headless')
options.add_argument('--user-data-dir=user')
options.add_argument('--profile-directory=profile')
driver = webdriver.Chrome(executable_path=chromeDriverPath, options=options)

■発生したエラーコード

Traceback (most recent call last):
  File "~\hogehoge.py", line 40, in __init__
    driver = webdriver.Chrome(executable_path=chromeDriverPath, options=options)
  File "~\webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "~\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "~\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "~\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "~\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist

この問題を解消するには下記のオプションを追加する。
DevToolsとやり取りするにはポートを指定してやる必要がある。

options.add_argument("--remote-debugging-port=9222") 

少しversionが古いが、下記の公式Documentsが参考になった
ヘッドレス Chrome ことはじめ

以上

コメントを残す

メールアドレスが公開されることはありません。