Изменить настройки браузера во время выполнения?

Можем ли мы изменить настройки браузера во время выполнения?

Есть ли возможность изменить настройки браузера, установленные перед запуском браузера во время выполнения программно?

Пример:

Я установил следующие настройки перед запуском драйвера

firefoxProfile.setPreference("pdfjs.disabled", true);
firefoxProfile.setPreference("plugin.scan.plid.all", false);
firefoxProfile.setPreference("plugin.scan.Acrobat", "99.0");

Я хочу изменить предпочтение на:

firefoxProfile.setPreference("pdfjs.disabled", **false**);
firefoxProfile.setPreference("plugin.scan.plid.all", **true**);
firefoxProfile.setPreference("plugin.scan.Acrobat", "99.0");

Пожалуйста помоги!!

Спасибо


person rama krishna    schedule 28.09.2017    source источник
comment
Вы добавили профиль в качестве аргумента при инициализации драйвера?   -  person IamBatman    schedule 28.09.2017


Ответы (1)


Можно изменить настройки во время выполнения с помощью about:config пользовательского интерфейса. Ниже код демонстрирует, как сделать то же самое

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("general.warnOnAboutConfig", False)

driver = webdriver.Firefox(firefox_profile=profile)

driver.get("about:config")

def set_bool_preferce(name, value):
    value = 'true' if value else 'false';

    driver.execute_script("""
        document.getElementById("textbox").value = arguments[0];
        FilterPrefs();
        view.selection.currentIndex = 0;

        if (view.rowCount == 1) {
           current_value = view.getCellText(0, {id:"valueCol"});
           if (current_value != arguments[1]) {
               ModifySelected();
           }
        } 
    """, name, value)


def set_string_preferce(name, value):

    modified = driver.execute_script("""
        document.getElementById("textbox").value = arguments[0];
        FilterPrefs();
        view.selection.currentIndex = 0;

        if (view.rowCount == 1) {
           current_value = view.getCellText(0, {id:"valueCol"});
           if (current_value != arguments[1]) {
               ModifySelected();
               return true;
           }
        } 

        return false;
    """, name, value)

    if modified is None or modified is True:
        alert = driver.switch_to.alert
        alert.send_keys(value)
        alert.accept()


set_bool_preferce("pdfjs.disabled", True)
set_string_preferce("plugin.disable_full_page_plugin_for_types", "application/pdf,application/pdf2")

driver.quit()
person Tarun Lalwani    schedule 28.09.2017
comment
Более короткий ответ был опубликован @JamesUp здесь: stackoverflow.com/a/48816511/5251061 - person mc51; 06.03.2019