How to load default profile in Chrome using Python Selenium Webdriver?
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:\Users\pc\AppData\Local\Google\Chrome\User Data\Default
, to use it in the script I had to exclude \Default\
so we end up with only C:\Users\pc\AppData\Local\Google\Chrome\User 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.
How to use Chrome Profile in Selenium Webdriver Python 3
As per your question and your code trials if you want to open a Chrome Browsing Session here are the following options:
To use the default Chrome Profile:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\Default")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")Note: Your default chrome profile would contain a lot of bookmarks, extensions, theme, cookies etc. Selenium may fail to load it. So as per the best practices create a new chrome profile for your @Test and store/save/configure within the profile the required data.
To use the customized Chrome Profile:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")Here you will find a detailed discussion on How to open a Chrome Profile through Python
How to use certain Chrome profile with selenium python?
First of all
update your ChromeDriver to the latest version
(This part is mandatory).
Then pass two arguments --profile-directory=Profile 1
and user-data-dir=C:\\Users\\user123\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 16
to the Chrome binary
options = Options()
options.add_argument('--profile-directory=Profile 16')
options.add_argument("user-data-dir=C:\\Users\\Hana\\AppData\\Local\\Google\\Chrome\\User Data\\") #Path to your chrome profile
driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe", options=options)
Note that in user-data-dir
you should only pass the path of all profiles then the name of specific profile (Here, Profile 16) should be passed through --profile-directory
You can check out full source code named PythonChromeProfile in SeleniumWebDriver-Tiny_projects on Github, Which I tested successfuly. Also you can read about creating Chrome profiles and find the path to that profile Here
Why selenium wont open my chrome profile?
Try this: Copy profile path from chrome://version/
e.g. C:\Users\pcuser\AppData\Local\Google\Chrome\User Data\Default
opt = webdriver.ChromeOptions()
opt.binary_location = r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe'
chromedriver_exe_location = os.path.join(os.getcwd(), 'chromedriver.exe')
profile_path = r'C:\\Users\\pcuser\\AppData\\Local\\Google\\Chrome\\User Data' # path minus last folder
opt.add_argument('--user-data-dir={}'.format(profile_path))
opt.add_argument('--profile-directory={}'.format('DEFAULT')) # last folder name
driver = webdriver.Chrome(chromedriver_exe_location, options=opt, service_args='')
Open Profile in Chrome Selenium
To fix this, change the add_argument
line to (removing the spaces in the string):
CH_Option.add_argument("user-data-dir=C:/Users/Ali/AppData/Local/Google/Chrome/User Data/Default")
Related Topics
Deprecationwarning: Executable_Path Has Been Deprecated Selenium Python
Download File from Web in Python 3
How to Manage Local VS Production Settings in Django
Pandas: Filter Rows of Dataframe with Operator Chaining
How to Check If the String Is Empty
Python: Execute Cat Subprocess in Parallel
How to Get If a Key Is Pressed Pygame
Index a 2D Numpy Array with 2 Lists of Indices
I'm Getting Key Error in Python
Change One Value Based on Another Value in Pandas
Does "\D" in Regex Mean a Digit
How to Install Python3 Version of Package via Pip on Ubuntu
What's the Purpose of "Send" Function on Python Generators
How to Convert SQLalchemy Row Object to a Python Dict
How to Delete Rows from a Pandas Dataframe Based on a Conditional Expression
Should I Always Specify an Exception Type in 'Except' Statements
Differences Between Distribute, Distutils, Setuptools and Distutils2