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

selenoid
selenium
Теги: #<Tag:0x00007f7b704e82c8> #<Tag:0x00007f7b704e8188>

(Aikrasnov) #1

Привет!

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

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

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


(Sergey Brit) #2

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


(Aikrasnov) #3

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


(Степан Корчевский) #4

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


(Aikrasnov) #5

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