Windowsなどでブラウザを使っていると、当然のように前回使っていた情報が使われています。
例えばwindowsでchromeを使っていると下記パスに保存されています。
C:\Users\[ユーザー]\AppData\Local\Google\Chrome\User Data\Default
node-chromeでブラウザの自動操作やスクレイピングをするときも、毎度クッキーなどのデータがクリアされるのではなく前回の状態を保持しておきたい=プロファイルデータを使えばよいとなります。
chrome://versionでnode-chromeの情報を見てみる
以前の記事でDocker Selenium GridとPythonコンテナ起動し、スクリプトでyahoo検索しました。
今回はchrome://versionを表示するようにすると、node-chromeでのユーザーデータがわかると思います。
もしくは、VNC上で右クリックしブラウザを開きます。

下記のようにchrome://versionと入力すると出てきます。
/home/seluser/.config/google-chrome/Defaultですね。

webdriver.optionにユーザープロファイルの場所を指定する
ユーザープロファイルはベースのディレクトリへのパス、どのユーザープロファイルディレクトリを使うか、の2つを指定します。
自分はnode-docker内の/home/seluser/chromedata/profile1としました。
from selenium import webdriver
options = webdriver.ChromeOptions()
userdir = r'/home/seluser/chromedata/profile1'
options.add_argument('--user-data-dir=' + userdir)
単一起動では問題なし。複数のnode-chrome起動時は注意
プロファイルディレクトリの重複はエラーになるようです。なので、複数のnode-chrome起動時はprofileディレクトリ名を1,2とするようスクリプトをうまく変更してください。
参考
Chromium Docs - User Data Directory

【Python】Seleniumのちょっとしたオプション機能
PythonでSeleniumのオプションについて紹介します。「Googleアカウントログイン状態で起動」「非表示での起動」「ウィンドウの最大化」の3点についてサンプルを紹介します。初心者にもわかりやすく説明しています。
コメント