t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как можно передать хрому настройки по умолчанию ?

Теги: #<Tag:0x00007f9af848e050> #<Tag:0x00007f9af848df88> #<Tag:0x00007f9af848dec0>

Вечер добрый, на сайте требуется постоянное включение флеша, как можно драйверу хрома передать настройки по умолчанию сайт на котором он всегда включен ? Есть доки по всем возможным опциям или искать методом тыка ?
Сама настройка находится тут:

Попробуйте

prefs.put("profile.default_content_setting_values.plugins", 1);
prefs.put("profile.content_settings.plugin_whitelist.adobe-flash-player", 1);
prefs.put("profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player", 1);
prefs.put("PluginsAllowedForUrls", "https://your_url.com");
1 Симпатия

Под python этот код не работоспособен. А если эти же строки добавить в experimental_options - драйвер падает с ошибкой unrecognized chrome option

Тогда надо делать профиль и подключать профиль

Спасибо, способ хоть и кустарный, но зато позволяет справится с задачей. :slight_smile:

Никакой он не кустарный. У любого браузера есть ключи запуска, так почему бы их не использовать. Вот мой пример. Здесь указывается и профиль и подгружается нужное расширение для обхода basic auth:

    elif browser == 'chrome':
        ch_opts = webdriver.ChromeOptions()
        ch_opts.add_argument(f"--user-data-dir={ui_config['pages_config']['chrome_profile']}")
        if ui_config['pages_config'].get('chrome_extension'):
            ch_opts.add_argument(f"--load-extension={ui_config['pages_config']['chrome_extension']}")
        ch_opts.add_argument('--start-maximized')
        driver = webdriver.Chrome(executable_path=driver_path,
                                  service_log_path=log_path,
                                  chrome_options=ch_opts)

А в конфиге вот такие пути:

chrome_profile: /home/username/.config/google-chrome/SeleniumQA
chrome_extension: /home/username/.config/google-chrome/SeleniumQA/Default/Extensions/enhldmjbphoeibbpdhmjkchohnidgnah/0.7.4_0

C этим согласен, но думал есть способ решение задачи путем передачи аргументов.

У меня получилось запустить:
Chrome Browser: 63.0.3239.132 (Официальная сборка) (64 бит)
chromedriver: 2.34.522940
Python 3.5.3
selenium (2.53.1)

chrome_options = webdriver.ChromeOptions()
prefs = {    "profile.default_content_setting_values.plugins": 1,
                 "profile.content_settings.plugin_whitelist.adobe-flash-player": 1,
                 "profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash-player": 1,
                 "PluginsAllowedForUrls": "http://testsite.com" 
                 }
chrome_options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(chrome_options=chrome_options,
                                    executable_path=r"path_to_chromedriver")

1 Симпатия