ハマった状況
スクレイピングをするときにgoogleの既存のユーザアカウントを使ってスクレイピングがしたかったので
- ユーザ情報をselenium.webdriver.chrome.optionsを使って設定
- 読み込み
という手順で実装したら"session not created: DevToolsActivePort file doesn't exist"と出るようになって1時間ほどあーでもないこーでもないと困りました。
対処
簡潔に対処だけ。
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--user-data-dir=chrome://versionでみれるパス')
options.add_argument('--profile-directory=同じくchrome://versionでみれるディレクトリ')
# その他の設定は省略
driver = webdriver.Chrome(options=options)
プログラムと同じディレクトリにprofileディレクトリを作って、
options.add_argument('--user-data-dir=作業ディレクトリ/profile/')
options.add_argument('--profile-directory=ユーザデータのディレクトリ名')
と直しました。
このエラー、headlessモードにするとなぜか出なくなったのですがその因果関係がわからないままで、「ファイル参照うまくいってないなら権限とかのせいかなー」と思って試したら動くようになったので、正直これで何で通常通り動くのか腑に落ちていないところがあります。