Comment désactiver L'avertissement de connexion non fiable de Firefox en utilisant du sélénium?

essaie de trouver un moyen d'empêcher Firefox de lancer un avertissement chaque fois qu'une connexion utilise un certificat "non fiable", avec du sélénium. Je pense que le type de solution qui fonctionnerait le mieux serait de définir une des préférences du navigateur.

Merci beaucoup! Toute suggestion sera appréciée!

18
demandé sur Juan Carlos Coto 2013-06-02 07:44:02

12 réponses

vient de trouver ça sur le lien bug de la Fondation Mozilla et ça a marché pour moi.

caps.setCapability("acceptInsecureCerts",true)
14
répondu Dominic Giallombardo 2017-04-03 15:28:54

j'ai trouvé ce commentaire sur l'activation de cette fonctionnalité dans le sélénium pour Java . Il y a aussi cette question StackOverflow sur le même sujet, aussi pour Java pour Python, qui était ma langue cible désirée, je suis venu avec ceci, en parcourant le FirefoxProfile code:

profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True

qui, pour autant que j'ai testé, a produit le comportement attendu.

Espérons que cela aide quelqu'un!

6
répondu Juan Carlos Coto 2017-05-23 12:34:36

pas besoin de profils personnalisés pour traiter " connexion non fiable "sur WebDriver

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
driver = new FirefoxDriver(capabilities);
5
répondu Prashanth Sams 2013-10-17 06:14:17

du début à la fin avec toutes les garnitures, en C#. Notez que J'avais installé FFv48 dans un répertoire personnalisé car GeckoDriver nécessite cette version spécifique.

    var ffOptions = new FirefoxOptions();            
    ffOptions.BrowserExecutableLocation = @"C:\Program Files (x86)\Mozilla Firefox48\firefox.exe";
    ffOptions.LogLevel = FirefoxDriverLogLevel.Default;
    ffOptions.Profile = new FirefoxProfile { AcceptUntrustedCertificates = true };            
    var service = FirefoxDriverService.CreateDefaultService(ffPath, "geckodriver.exe");            
    var Browser = new FirefoxDriver(service, ffOptions, TimeSpan.FromSeconds(120));
3
répondu redwards510 2016-11-04 21:10:39

aucune des réponses ci-dessus n'a fonctionné pour moi. Je suis à l'aide d': https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

Firefox 50.1.0

Python 3.5.2

sélénium 3.0.2

Windows 10

Je l'ai résolu juste en utilisant un profil FF personnalisé qui était plus facile à faire que je m'y attendais. Utilisation de cette information https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager sur comment faire un profil personnalisé, j'ai fait ce qui suit: 1) fait un nouveau profil 2) s'est rendu manuellement sur le site en FF pour augmenter l'erreur de certificat non fiable 3) Ajouter une exception pour le site (lorsque l'erreur est soulevée, cliquez sur Avancé, puis ajoutez exception) 4) confirmer l'exception fonctionne en rechargeant le site (vous ne devriez plus avoir l'erreur 5) copier le nouveau profil Créer dans votre projet (pour moi c'est un projet de test de sélénium) 6) référez le nouveau chemin de profil dans votre code

Je n'ai trouvé aucune des lignes suivantes a résolu le problème pour moi:

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['handleAlerts'] = True
firefox_capabilities['acceptSslCerts'] = True
firefox_capabilities['acceptInsecureCerts'] = True
profile = webdriver.FirefoxProfile()
profile.set_preference('network.http.use-cache', False)
profile.accept_untrusted_certs = True

mais en utilisant un profil personnalisé comme mentionné ci-dessus. Voici mon code:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
#In the next line I'm using a specific FireFox profile because
# I wanted to get around the sec_error_unknown_issuer problems with the new Firefox and Marionette driver
# I create a FireFox profile where I had already made an exception for the site I'm testing
# see https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager

ffProfilePath = 'D:\Work\PyTestFramework\FirefoxSeleniumProfile'
profile = webdriver.FirefoxProfile(profile_directory=ffProfilePath)
geckoPath = 'D:\Work\PyTestFramework\geckodriver.exe'
browser = webdriver.Firefox(firefox_profile=profile, capabilities=firefox_capabilities, executable_path=geckoPath)
browser.get('http://stackoverflow.com')
3
répondu Roochiedoor 2017-01-06 15:02:54

dans mon cas, j'utilisais le conducteur de marionnette au lieu du conducteur de Firefox. Il y a un bogue reconnu ( https://bugzilla.mozilla.org/show_bug.cgi?id=1103196 ) pour elle. En attendant, J'utilise le pilote Firefox à la place:

DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

FirefoxProfile profile = new FirefoxProfile();
profile.setAcceptUntrustedCertificates(true);

dc.setCapability(FirefoxDriver.PROFILE, profile);

// this is the important line - i.e. don't use Marionette
dc.setCapability(FirefoxDriver.MARIONETTE, false);

Webdriver driver =  new FirefoxDriver(dc);
2
répondu Ondrej Svejdar 2016-11-24 14:30:41

j'ai ajouté ce qui suit et ça a marché pour moi

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setAcceptInsecureCerts(true);
WebDriver driver = new FirefoxDriver(desiredCapabilities);
2
répondu Sonam Varma 2017-06-09 11:14:14

pour moi, en utilisant PHP facebook/webdriver j'ai créé un profil et j'ai autorisé le certifié. Le nom du profil était selenium .

ensuite j'initialise mon sélénium 3:

java -jar -Dwebdriver.firefox.profile=selenium selenium-server-standalone-3.0.1.jar

puis dans FirefoxDriver.php J'ai mis const PROFILE = 'selenium';

ça a marché pour moi.

1
répondu Rafael Guimarães 2017-01-18 10:19:23

pour Firefox driver et Java ajouter ces lignes:

WebDriver driver;
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("default");
testprofile.setAcceptUntrustedCertificates(true);
testprofile.setAssumeUntrustedCertificateIssuer(true);
driver = new FirefoxDriver(testprofile);

si vous utilisez geckodriver n'oubliez pas d'ajouter ceci avant l'initialisation du profil:

System.setProperty("webdriver.gecko.driver","<PATH_TO_GECKODRIVER>\geckodriver.exe");
1
répondu Vas Giatilis 2017-01-18 11:14:24

dans Java vous devez utiliser DesiredCapabilities.setAcceptInsecureCerts() . Pour obtenir un FirefoxDriver avec la capacité et le profil personnalisés faire ce qui suit:

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setAcceptInsecureCerts(true);

FirefoxProfile profile = new FirefoxProfile();
profile.set*...

FirefoxOptions options = new FirefoxOptions();
options.addCapabilities(capabilities);
options.setProfile(profile);

new FirefoxDriver(options);
1
répondu Francois Bourgeois 2017-09-18 11:38:04

Dans mon cas, ce n'est le truc

FirefoxOptions options = new FirefoxOptions();
options.addCapabilities(new ImmutableCapabilities(ImmutableMap.of(
   CapabilityType.ACCEPT_SSL_CERTS, true,
   CapabilityType.ACCEPT_INSECURE_CERTS, true)));
WebDriver driver = new FirefoxDriver(options);
1
répondu riccardo.tasso 2018-09-04 15:11:10

ci-dessus solution a fonctionné pour moi sur Firefox 54.0B9 (64 bits). C'est mon code.

  1. Créez vos capacités
  2. créer un profil FF avec vos exigences
  3. ajouter 1. & 2. pour les options de Firefox et le passer à FirefoxDriver

comme ci-dessous

capabilities = new DesiredCapabilities().firefox();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

//Accept Untrusted connection and to download files
FirefoxProfile profile = new FirefoxProfile();
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(false);         
profile.setPreference("dom.file.createInChild", true); 
profile.setPreference("browser.download.folderList", 1);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);

profile.setPreference("browser.download.manager.showWhenStarting"
                           ,false);
profile.setPreference("pdfjs.disabled", true );

profile.setPreference("browser.helperApps.neverAsk.saveToDisk"
      ,"application/pdf;image/jpg;image/jpeg;text/html;text/plain;application/zip;application/download");

System.setProperty("webdriver.gecko.driver", config.getGeckoDriver());

capabilities.setCapability(FirefoxDriver.PROFILE, profile);

FirefoxOptions options = new FirefoxOptions();
options.addCapabilities(capabilities);
options.setProfile(profile);
driver=new FirefoxDriver(options);       
0
répondu Vishwanath 2017-12-13 08:43:52