2017-05-09 1 views
5

geckodriver Version[Selen] [geckodriver] Wie Felder Präferenz firefox Profil ändern wie "security.insecure_field_warning.contextual.enabled"

0.16.1

Firefox Version

53,0 .2 (32-bit)

Was passiert:

Wenn ich versuche, die Anmeldung auf einer unsicheren Seite zu automatisieren, öffnet das Firefox eine neue Registerkarte "https://support.mozilla.org/1/firefox/53.0.2/WINNT/pt-PT/insecure-password".

Wie kann ich dies deaktivieren? Ich denke, dass die Eigenschaft "security.insecure_field_warning.contextual.enabled" mit diesem Verhalten zusammenhängt, aber ich weiß nicht, wie ich es durch Python-Code deaktivieren könnte.

Ich versuche, den folgenden Code aber ohne Erfolg:

[...] 
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) 

die Präferenz nicht ändert, bleibt mit True Wert auf about: config.

Irgendeine Idee?

Mit freundlichen Grüßen,

Ruben Santos

Antwort

0

konnte ich die Lösung finden.

Ab der Version 0.11 von geckodriver ist es möglich, firefox-Einstellungen durch die moz: firefoxOptions-Funktion anstelle von Profileinstellungen zu ändern.

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

Auf diese Weise ich die "security.insecure_field_warning.contextual.enabled" ändern, konnte mit dieser Lösung:

[...] 
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) 
0

fand ich einfachere Lösung:

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) 
Verwandte Themen