Вопрос-Ответ

How to open a Chrome Profile through Python

Как открыть профиль Chrome через Python

Мой скрипт, который я писал, работает отлично. Я просто добавил опцию, чтобы он открывал профиль в Chrome с помощью этого кода.

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')

При использовании я получаю этот код ошибки.

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'

Как я могу это исправить?

Переведено автоматически
Ответ 1

Чтобы создать и открыть новый профиль Chrome, вам необходимо выполнить следующие действия :


  • Откройте браузер Chrome, нажмите на боковое меню и нажмите на Настройки, в которых откроется URL chrome://settings/.

  • В разделе "Люди" нажмите "Управлять другими пользователями", после чего появится всплывающее окно.

  • Нажмите "ДОБАВИТЬ ПОЛЬЗОВАТЕЛЯ", укажите "имя пользователя", выберите "значок", установите флажок "Создать ярлык на рабочем столе для этого пользователя" и нажмите кнопку "ДОБАВИТЬ".

  • Будет создан ваш новый профиль.

  • Снимок нового профиля SeLeNiUm

SeLeNiUm


  • Теперь значок на рабочем столе будет создан как SeLeNiUm - Chrome

  • Из свойств значка на рабочем столе SeLeNiUm - Chrome получите имя каталога профиля. например, --profile-directory="Профиль 2"

профиль-каталог


  • Получите абсолютный путь к каталогу профилей в вашей системе следующим образом :


    C:\\Users\\Otaku_Wiz\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2

  • Теперь передайте значение profile-directory через экземпляр Options с add_argument() методом вместе с ключом user-data-dir следующим образом :


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

  • Выполните ваше Test


  • Обратите внимание, что Chrome инициализируется с помощью профиля Chrome как SeLeNiUm

SeLeNiUm

Ответ 2

Вы можете использовать options = Options() или options = webdriver.ChromeOptions() вместо options = webdriver.ChromeOptions

В противном случае вы указываете на объект (а именно webdriver.ChromeOptions), а не создаете экземпляр этого объекта, включая необходимую круглую скобку

python selenium