Selenium 4.11.2: Не открывается URL при открытии нового окна с использованием custom user data

Рейтинг: 0Ответов: 1Опубликовано: 11.08.2023

Вопрос следующий. Нужно, используя данные пользователя (мои) хрома открыть новое окно и перейти по переданному URL'у. Если использовать тестовый браузер, открытие ссылки происходит без проблем, но если передавать через add_argument кастомный профиль, то открывается просто пустое окно, по ссылке не переходит, передавая:

 File "D:\Soft\PyCharm Community Edition 2023.1.1\Projects\programs\sketch.py", line 19, in <module>
    driver = webdriver.Chrome(options=dr)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Soft\Python 3.11.3\Lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 45, in __init__
    super().__init__(
  File "D:\Soft\Python 3.11.3\Lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 56, in __init__
    super().__init__(
  File "D:\Soft\Python 3.11.3\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 206, in __init__
    self.start_session(capabilities)
  File "D:\Soft\Python 3.11.3\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 290, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\Soft\Python 3.11.3\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 345, in execute
    self.error_handler.check_response(response)
  File "D:\Soft\Python 3.11.3\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally.
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location C:\Program Files\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

Сам кусок кода:

    dr = webdriver.ChromeOptions()
    udd = r'C:\Users\Admin\AppData\Local\Google\Chrome\User Data'
    dr.add_argument(f"user-data-dir={udd}")
    driver = webdriver.Chrome(options=dr)
    driver.get('https://www.youtube.com/')

Собственно, чего мне не живется с дефолтным тестовым окном - мне нужна авторизация на сайте через почтовый ящик, а вход в него осуществляется через аутентификаторы или коды на телефон. Хотелось бы пропустить этот момент.

Ответы

▲ 0

Мне помогло следующее. Из папки с профилями гугла - C:\Users\Admin\AppData\Local\Google\Chrome\User Data - скопировал папку Default на другой диск и прописал путь к скопированной папке в user-data-dir. После этого Selenium открывает новое окно со всеми моими авторизациями.