実現したいこと
Seleniumを使ってGoogleアカウントにログインした状態でChromeを起動したいです。
前提
https://senablog.com/python-selenium-google-login/
https://tkstock.site/2023/01/22/selenium-browser-session-login-cookie/
これらのサイトを参考に下のコードを作成しました。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "/Users/takayuki-k/Desktop/書道/submit_figs.py", line 18, in <module> driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) TypeError: WebDriver.__init__() got multiple values for argument 'options'
引数を複数与えていることが原因となっていますが、参考にしたサイトではうまくいっているようです。どのように修正すれば良いのでしょうか?
該当のソースコード
Python
1from selenium import webdriver 2from webdriver_manager.chrome import ChromeDriverManager 3from selenium.webdriver.chrome.options import Options 4import time 5 6profile_path = '/Users/usrname/Library/Application Support/Google/Chrome' #usernameには自分のアカウント名を入れた 7#account_name = 'Default' #User Data/(xxx)に表示されている名前、メインアカウントは基本「Default」に保存されているはずです 8 9options = Options() 10options.add_argument('--user-data-dir=' + profile_path) 11#options.add_argument(f'--profile-directory={account_name}') #コメントを付け替える f の意味はよくわからない 12options.add_argument('--profile-directory=Default') 13options.add_argument('--disable-dev-shm-usage') 14 15 16# ドライバー定義 17driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) 18# ウィンドウサイズ固定(フレキシブルなタグ構成でエラーになると面倒なので) 19driver.set_window_size(1200,1000) 20 21# グーグルアカウント上にログイン情報を保存しているURL 22login_url = 'https://www.google.com/?authuser=0' 23 24# URLにアクセス 25driver.get(login_url) 26 27# デバック用 28time.sleep(3) 29#driver.close() 30driver.quit()
試したこと
otn様、tmp様ありがとうございます。
以下のサイトに似た質問があり、これもやってみたところエラーは出ないのですが、ブラウザが立ち上がりませんでした。
stackoverflowと同じようにコードを書き実行しましたが、chromedriverの場所は違う場所でした。申し訳ございません。
このサイト( https://office54.net/python/module/python-selenium-chrome )にも同じようなことが書かれているのを見つけ、次のようにコードを書き直しました。
Python
1from selenium import webdriver 2from webdriver_manager.chrome import ChromeDriverManager 3from selenium.webdriver.chrome.service import Service 4import time 5 6options = webdriver.ChromeOptions() 7 8#options.add_argument('--headless') 9#options.add_argument('--no-sandbox') 10#options.add_argument('--disable-dev-shm-usage') 11 12options.add_argument('--disable-gpu'); 13options.add_argument('--disable-extensions'); 14options.add_argument('--start-maximized'); 15options.add_experimental_option("excludeSwitches", ['enable-automation']) 16 17service = Service(executable_path=r'/Users/takayuki-k/Desktop/書道/chromedriver_mac64/chromedriver') #どちらでもChromeは立ち上がりました 18#service = Service(executable_path = ChromeDriverManager().install()) 19 20driver = webdriver.Chrome(service=service, options=options) 21 22login_url = 'https://www.google.com/' 23 24driver.get(login_url) 25 26time.sleep(5) 27 28driver.quit()
こちらのサイト( https://senablog.com/python-selenium-chrome-option/ )によると、options.add_argument('--headless')
の記述がバックグラウンドでの起動を行うもののようで、ウィンドウが表示されなかったものと思われます。
しかし、相変わらずログインした状態でChromeは起動しませんでした。引き続き調べてみますが、何か助言等いただけましたら幸いです。よろしくお願いいたします。
補足情報
mac OS 11.7.4
Python 3.10.5
selenium 4.10.0
Google Chrome 114.0.5735.133
Chrome Driver 114.0.5735.90
