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
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.
Selenium: Point towards default Chrome session
Make sure you are pointing to the right folder using "Chrome://version".
I am using the windows but it should be similar in you mac case too.
Refer to this link for more information.
How to create a custom profile:
You can create your own custom profile by just running Chrome (on the command-line or through ChromeDriver) with the user-data-dir switch set to some new directory. If the path doesn't exist, Chrome will create a new profile in the specified location. You can then modify the profile settings as desired, and ChromeDriver can use the profile in the future. Open chrome://version in the browser to see what profile Chrome is using.
Reference:
http://chromedriver.chromium.org/capabilities
Related Topics
How to Format Number as Money Using Regex
Sending Array of Bytes from Client to Server
How to Delete Records Between Two Dates in Bulk
Could Not Start Windows Service, Error 1064
How to Get Nested Json Values in C#
How to Show a Console Output/Window in a Forms Application
How to Get the Display Name Attribute of an Enum Member Via MVC Razor Code
Using Selenium2, How to Check If Certain Text Exists on the Page
How to Check If a Windows Form Is Already Open, and Close It If It Is
Extract First Element from Json
Using Linq to Remove Elements from a List<T>
How to Convert a List to Ienumerable
How Does Httpcontext.Current.User.Identity.Name Know Which Usernames Exist
Check If Combobox Value Is Empty
How to Use a Nuget Package Within a Powershell Script
How to Split Json String in C# and Store in Separate Variables
How to Refresh or Show Immediately in Datagridview After Inserting