Как передать в selenoid кастомный профиль для хрома?

Привет!

Мне нужно передавать кастомный профиль для хрома (установлены и настроены расширения), делаю это так

def create_chrome_options(self, preferences):
    """Create Chrome options."""
    options = webdriver.ChromeOptions()

    if 'binary_location' in preferences:
        options.binary_location = preferences['binary_location']

    options.add_argument('--profile-directory=Profile_1')
    options.add_argument("--user-data-dir=/Users/username/custom_profile")

    return options

При запуске локально все работает хорошо, а при запуске в selenoid все падает,

WebDriverException: Message: unknown error: cannot create default profile directory

Видимо, из-за того что в контейнере нет такого пути. Как мне сделать профиль для хрома доступным в контейнере?

Видимо у вас нет прав на создание дериктории по этому пути

Это путь на моей рабочей машине, а не в контейнере, где тесты запускаются.
Не понятно как положить профиль внутрь контейнера.

в файле конфигурации селеноида - browsers.json с помощью параметра volumes прокинь папку с профилем в контейнер ( "volumes" : ["/from:/to:ro"], ro - read only)
и не забывайте о правах!!!
но в данном случае во все контейнеры будет мотрироваться данная папка, что есть не хорошо

1 лайк

Спасибо, то что нужно.

@aikrasnov У вас получилось запускать Хром с профайлами?
У меня не запускается, с ошибкой selenium.common.exceptions.WebDriverException: Message: unknown error: Could not remove old devtools port file. Perhaps the given user-data-dir at /home/mikhail/assets/chrome_profiles_local/Facebook/8a03d11c-edd6-4d42-bf00-8695464 is still attached to a running Chrome or Chromium process.