Python Selenium

SeleniumでGoogleアカウントにログインした状態で起動する方法

この記事は約4分で読めます。

 

今回はSeleniumでグーグルアカウントにログインした状態でブラウザを起動し、特定のサイトへのログイン状態を保存したままにしておく方法について紹介したいと思います

 

Seleniumでログイン状態を保存する

 

具体的にはログイン情報を保存した仮ユーザーを作成します

GoogleChromeではローカルのPCのどこかにユーザー情報を保管しているのでそれをSelenium起動時に参照するように変更します

 

プロファイルパスの確認

 

ブラウザ上部の検索欄に「chrome://version/」に入力して自分のアカウント情報のプロフィールが保存されている場所を確認します

 

参照

 

上記の画像の例だと\~~User Dataがアカウント情報を保存しているディレクトリで、「Default」というのがユーザー名になります。

 

グーグルアカウントにログインした状態でSeleniumを起動する

 

サンプルコードは以下になります

 

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

profile_path = '自分PCのユーザー情報が保存されているパス~~User Data'
account_name = 'Default' #User Data/(xxx)に表示されている名前、メインアカウントは基本「Default」に保存されているはずです

options = Options()
options.add_argument('--user-data-dir=' + profile_path)
options.add_argument(f'--profile-directory={account_name}')
options.add_argument('--disable-dev-shm-usage')


# ドライバー定義
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
# ウィンドウサイズ固定(フレキシブルなタグ構成でエラーになると面倒なので)
driver.set_window_size(1200,1000)

# グーグルアカウント上にログイン情報を保存しているURL
login_url = 'https://twitter.com/'

# URLにアクセス
driver.get(login_url)

# デバック用
time.sleep(10)
#driver.close()
#driver.quit()

 

よくあるエラー

 

エラー全文

 

Unhandled exception:
UnknownException (500): unknown error: DevToolsActivePort file doesn’t exist
#0 parseW3cResponse (package:webdriver/src/handler/w3c/utils.dart:102:9)
#1 W3cSessionHandler.parseCreateResponse (package:webdriver/src/handler/w3c/session.dart:19:21)
#2 AsyncRequestClient.send (package:webdriver/src/common/request_client.dart:96:32)
<asynchronous suspension>
#3 createDriver (package:webdriver/async_core.dart:64:19)
<asynchronous suspension>

 

原因と対処法

 

詳細はわかりませんでしたが、自分の場合はオプション「–no-sandbox」を使用することで解決しました。また他にブラウザを開いている場合もこのエラーは発生するので他のChrmeのブラウザをすべて閉じてみてからプログラムを実行してみてください(自分はこれでうまくいきました)

 

 

関連記事:【Python】Seleniumでサイトのログイン情報を保存する方法

 

コメント

  1. […] 関連記事:SeleniumでGoogleアカウントにログインした状態で起動する方法 […]

タイトルとURLをコピーしました