How to open a Chrome Profile through Python

倾然丶 夕夏残阳落幕 提交于 2019-11-26 01:54:51

问题


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:\\Users\\princess\\AppData\\Local\\Programs\\Python\\Python36-32\\chromedriver.exe\", chrome_options=options)
options.add_argument(r\'user-data-dir=C:\\Users\\princess\\AppData\\Local\\Google\\Chrome\\User Data\')
options.add_argument(\'--profile-directory=Profile 1\')

When used, I get this error code.

C:\\Users\\Princess\\Desktop>CHBO.py
Traceback (most recent call last):
  File \"C:\\Users\\Princess\\Desktop\\CHBO.py\", line 12, in <module>
    browser = webdriver.Chrome(executable_path=r\"C:\\Users\\princess\\AppData\\Local\\Programs\\Python\\Python36-32\\chromedriver.exe\", chrome_options=options)
  File \"C:\\Users\\Princess\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages\\selenium\\webdriver\\chrome\\webdriver.py\", line 59, in __init__
    desired_capabilities = options.to_capabilities()
TypeError: to_capabilities() missing 1 required positional argument: \'self\'

How do I fix this?


回答1:


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

  • 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"

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

  • Observe Chrome gets initialized with the Chrome Profile as SeLeNiUm




回答2:


You can use options = Options() or options = webdriver.ChromeOptions() at place of options = webdriver.ChromeOptions



来源:https://stackoverflow.com/questions/49270109/how-to-open-a-chrome-profile-through-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!