问题
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