java - 在运行时更改浏览器首选项?

标签 java selenium selenium-chromedriver preferences firefox-profile

我们可以在运行时更改浏览器首选项吗?

是否有可能在以编程方式执行期间在启动浏览器之前更改浏览器首选项设置?

例子:

我在启动驱动程序之前设置了以下首选项

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

请帮忙!!

谢谢

最佳答案

可以使用 about:config UI 在运行时更改设置。下面的代码演示了如何做同样的事情

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()

关于java - 在运行时更改浏览器首选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46470473/

相关文章:

java - 并发-如何使其排队而不被拒绝?

java - 如何处理构造函数中过多的参数?

java - 实现单链表

java - 如何在 itext 中将页面大小设置为欧洲 A4

java - 在 Debug模式下运行时元素是可点击的,但运行时通常会抛出 ElementClickInterceptedException

java - 根据 Selenium 中的字符串选择复选框

ubuntu - chromedriver : various lib dependencies are missing on ubuntu 14. 04 64 位

python - Selenium 与 Chrome 一起工作,但不是 headless (headless)的 Chrome

Java 和 Selenium : Static methods in Page Objects

java - Selenium Proxy 与 Google Chrome 可移植