Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
651 views
in Technique[技术] by (71.8m points)

selenium - How to open a Chrome Profile through Python

My script I have been writing has been working great. I just added the option so it would open a profile on chrome using this code.

options = webdriver.ChromeOptions
browser = webdriver.Chrome(executable_path=r"C:UsersprincessAppDataLocalProgramsPythonPython36-32chromedriver.exe", chrome_options=options)
options.add_argument(r'user-data-dir=C:UsersprincessAppDataLocalGoogleChromeUser Data')
options.add_argument('--profile-directory=Profile 1')

When used, I get this error code.

C:UsersPrincessDesktop>CHBO.py
Traceback (most recent call last):
  File "C:UsersPrincessDesktopCHBO.py", line 12, in <module>
    browser = webdriver.Chrome(executable_path=r"C:UsersprincessAppDataLocalProgramsPythonPython36-32chromedriver.exe", chrome_options=options)
  File "C:UsersPrincessAppDataLocalProgramsPythonPython36-32libsite-packagesseleniumwebdriverchromewebdriver.py", line 59, in __init__
    desired_capabilities = options.to_capabilities()
TypeError: to_capabilities() missing 1 required positional argument: 'self'

How can I fix this?

Question&Answers:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

To create and open a new Chrome Profile you need to follow the following steps :

  • Open Chrome browser, click on the Side Menu and click on Settings on which the url chrome://settings/ opens up.
  • In People section, click on Manage other people on which a popup comes up.
  • Click on ADD PERSON, provide the person name, select an icon, keep the item Create a desktop shortcut for this user checked and click on ADD button.
  • Your new profile gets created.
  • Snapshot of a new profile SeLeNiUm

SeLeNiUm

  • Now a desktop icon will be created as SeLeNiUm - Chrome
  • From the properties of the desktop icon SeLeNiUm - Chrome get the name of the profile directory. e.g. --profile-directory="Profile 2"

profile-directory

  • Get the absolute path of the profile-directory in your system as follows :

    C:\Users\Otaku_Wiz\AppData\Local\Google\Chrome\User Data\Profile 2
    
  • Now pass the value of profile-directory through an instance of Options with add_argument() method along with key user-data-dir as follows :

    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:pathochromedriver.exe', chrome_options=options)
    driver.get("https://www.google.co.in")
    
  • Execute your Test

  • Observe Chrome gets initialized with the Chrome Profile as SeLeNiUm

SeLeNiUm


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...