How to load default profile in Chrome using Python Selenium Webdriver?

Question:

I’d like to launch Chrome with its default profile using Python’s webdriver so that cookies and site preferences persist across sessions.

How can I do that?

Asked By: MadRabbit

||

Answers:

This is what finally got it working for me.

from selenium import webdriver

options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:\Path") #Path to your chrome profile
w = webdriver.Chrome(executable_path="C:\Users\chromedriver.exe", chrome_options=options)

To find path to your chrome profile data you need to type chrome://version/ into address bar . For ex. mine is displayed as C:UserspcAppDataLocalGoogleChromeUser DataDefault, to use it in the script I had to exclude Default so we end up with only C:UserspcAppDataLocalGoogleChromeUser Data.

Also if you want to have separate profile just for selenium: replace the path with any other path and if it doesn’t exist on start up chrome will create new profile and directory for it.

Answered By: MadRabbit

This solved my problem. (remove Default at the end)

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=/home/username/.config/google-chrome")

cls.driver = webdriver.Chrome(options=options,
                              executable_path="./../ext/chromedriver")

Chrome_Options ist deprecated. Use options instead

Answered By: Nils Zenker

Just to share what worked for me. Using default’s profile was complicated, chrome keeps crashing.

from pathlib import Path
from selenium import webdriver

driver_path = Path("{}/driver/chromedriver75.exe".format(PATH_TO_FOLDER))
user_data_dir = Path("{}/driver/User Data".format(PATH_TO_FOLDER))

options = webdriver.ChromeOptions()

# TELL WHERE IS THE DATA DIR
options.add_argument("--user-data-dir={}".format(user_data_dir))

# USE THIS IF YOU NEED TO HAVE MULTIPLE PROFILES
options.add_argument('--profile-directory=Default')

driver = webdriver.Chrome(executable_path=driver_path, options=options)

driver.get("https://google.com/")

By doing this Chrome will create the folder User Data and keep all the data in it where I want and it’s easy to just move your project to another machine.

Answered By: Yoannes Geissler

This answer is pretty simple and self-explained.

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

exec_path_chrome = "path/to/Google Chrome" #Do not use this path that is extracted from "chrome://version/"
exec_path_driver = "path/to/chromedriver"

ch_options = Options() #Chrome Options
ch_options.add_argument("user-data-dir = /path/to/Chrome Profile") #Extract this path from "chrome://version/"

driver = webdriver.Chrome(executable_path = exec_path_driver, options = ch_options) #Chrome_Options is deprecated. So we use options instead.

driver.get("https://stackoverflow.com/a/57894065/4061346")

As @MadRabbit said type chrome://version/ into the address bar to find the path to your chrome profile data.

  • It appears like this in Windows C:UserspcAppDataLocalGoogleChromeUser DataDefault
  • It appears like this in Mac /Users/user/Library/Application Support/Google/Chrome/Default

So all you have to do is to erase the last portion Default from the profile path.

Note: Make sure you don’t run more than one session at the same time to avoid problems.

Answered By: Youssof H.

I solved my problem with answer of "Yoannes Geissler".

In my case My profile was named "Profile 2"

My Code :

options = webdriver.ChromeOptions() 

options.add_argument('--user-data-dir=C:/Users/GOD/AppData/Local/Google/Chrome/User Data')

options.add_argument('--profile-directory=Profile 2')

wd = webdriver.Chrome(options=options)

The below line solved my problem:

options.add_argument('--profile-directory=Profile 2')
Answered By: Everest Ok
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.