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

python
selenium
webdriver
Теги: #<Tag:0x00007fedbce6d438> #<Tag:0x00007fedbce6d2d0> #<Tag:0x00007fedbce6d190>

(Acamori) #1

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


(Vasiliy Rakshin) #2

Попробуйте

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");

(Acamori) #3

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


(Vasiliy Rakshin) #4

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


(Acamori) #5

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


(Maxim Andryushchenkov) #6

Никакой он не кустарный. У любого браузера есть ключи запуска, так почему бы их не использовать. Вот мой пример. Здесь указывается и профиль и подгружается нужное расширение для обхода 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

(Acamori) #7

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


(Maxim Zaitsev) #8

У меня получилось запустить:
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")