[Selenium] [geckodriver]如何更改firefox配置文件首选项字段,如“security.insecure_field_warning.contextual.enabled”

时间:2017-05-09 17:10:23

标签: python selenium firefox webdriver geckodriver

geckodriver版本

0.16.1

Firefox版本

53.0.2(32位)

会发生什么:

当我尝试在不安全的网页上自动登录时,Firefox会打开一个新标签“https://support.mozilla.org/1/firefox/53.0.2/WINNT/pt-PT/insecure-password”。

如何禁用此功能?我认为属性“security.insecure_field_warning.contextual.enabled”与此行为有关,但我不知道如何通过python代码禁用它。

我尝试以下代码但没有成功:

[...]
firefox_driver = path_drivers + "geckodriver.exe"
profile = webdriver.FirefoxProfile()
profile.set_preference("security.insecure_field_warning.contextual.enabled", False)
return webdriver.Firefox(executable_path=firefox_driver, firefox_profile=profile)

首选项不会更改,在about:config。

上保留True值

有什么想法吗?

致以最诚挚的问候,

鲁本桑托斯

2 个答案:

答案 0 :(得分:0)

我能够找到解决方案。

从geckodriver的0.11版本可以通过moz:firefoxOptions功能更改firefox首选项,而不是更改配置文件设置。

{
    "capabilities": {
        "alwaysMatch": {
            "moz:firefoxOptions": {
                "binary": "/usr/local/firefox/bin/firefox",
                "args": ["--no-remote"],
                "prefs": {
                    "dom.ipc.processCount": 8
                },
                "log": {
                    "level": "trace"
                }
            }
        }
    }
}

通过这种方式,我可以使用此解决方案更改“security.insecure_field_warning.contextual.enabled”:

[...]
firefox_driver = path_drivers + "geckodriver.exe"
firefox_capabilities = DesiredCapabilities.FIREFOX.copy()
#To disable insecure-password tab by support firefox
firefox_options = { "moz:firefoxOptions" : { "prefs" : { "security.insecure_field_warning.contextual.enabled" : False } } }
firefox_capabilities["alwaysMatch"] = firefox_options
return webdriver.Firefox(executable_path=firefox_driver, capabilities=firefox_capabilities)

答案 1 :(得分:0)

我找到了更简单的解决方案:

from selenium.webdriver import Firefox, FirefoxProfile

profile = FirefoxProfile()
profile.set_preference('security.insecure_field_warning.contextual.enabled', False)
profile.set_preference('security.insecure_password.ui.enabled', False)
driver = Firefox(firefox_profile=profile)