Как использовать Chrome Profile в Selenium Webdriver Python 3 - PullRequest
0 голосов
/ 18 сентября 2018

Поэтому всякий раз, когда я пытаюсь использовать свои настройки Chrome (настройки, которые я использую в браузере по умолчанию), добавляя

options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\Users\... (my webdriver path)")
driver = webdriver.Chrome(executable_path="myPath", options=options)

, он показывает код ошибки

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes n 16-17: truncated \UXXXXXXXX escape

в моемБаш.Я не знаю, что это значит, и я был бы рад любой помощи, которую я могу получить.Заранее спасибо!

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Вы уверены, что хотите указать путь к веб-драйверу в аргументе user-data-dir?Обычно это место, где вы помещаете свой профиль Chrome, например, «C: \ Users \ имя_пользователя \ AppData \ Local \ Google \ Chrome \ User Data \ Profile 1 \».Также вам нужно будет использовать либо двойную обратную косую черту, либо прямую косую черту в пути к каталогу (оба работают).Вы можете проверить, работает ли ваш путь, используя библиотеку os, например,

import os
os.list("C:\\Users\\yourusername\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 1")

выдаст вам список каталогов.

Я мог бы также иногда добавить это, если вам удастся аварийно завершить работу Chrome во время работы webdriverс назначенным профилем пользователя, который, кажется, записывает сбой в профиле, и в следующий раз, когда вы открываете Chrome, вы получаете приглашение Chrome для восстановления страниц после его аварийного выхода.Лично для меня это было немного головной болью, и я больше не использую профиль пользователя с chromedriver из-за этого.Я не мог найти способ обойти это.Другие люди сообщили об этом здесь, но ни одно из их решений не показалось мне подходящим или не подходящим для моих тестовых случаев.https://superuser.com/questions/237608/how-to-hide-chrome-warning-after-crash Если вы не назначаете профиль пользователя, создается впечатление, что он создает новый (пустой) временный профиль при каждом запуске

0 голосов
/ 19 сентября 2018

В соответствии с вашим вопросом и вашими испытаниями кода , если вы хотите открыть Сеанс просмотра Chrome , доступны следующие варианты:

  • Чтобы использовать профиль по умолчанию Chrome :

    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")
    
  • Примечание. Ваш профиль Chrome по умолчанию будет содержать множество закладок, расширений, темы, файлы cookie и т. д. Selenium может не загрузить его.В соответствии с лучшими практиками создайте новый хромовый профиль для вашего @ Test и сохраните / сохраните / настройте в профиле необходимые данные.

  • Для использования настроенного профиля Chrome :

    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")
    
  • Здесь вы найдете подробное обсуждение Как открыть профиль Chrome через Python

0 голосов
/ 19 сентября 2018

Убедитесь, что у вас есть правильный путь к профилю, и что вы дважды экранируете обратную косую черту в указанном пути.

Например, обычно профиль по умолчанию в Windows расположен по адресу:

"C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data\\Default"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...