web-dev-qa-db-fra.com

Comment désactiver l'avertissement de connexion non sécurisée de Firefox à l'aide de Selenium?

Essayer de trouver un moyen d'empêcher Firefox de générer un avertissement chaque fois qu'une connexion utilise un certificat "non approuvé", avec Selenium. Je pense que le type de solution qui fonctionnerait le mieux serait de définir l’une des préférences du navigateur.

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

18
Juan Carlos Coto

J'ai trouvé ce commentaire sur l'activation de cette fonctionnalité dans Selenium pour Java . Il y a aussi cette question de StackOverflow sur le même problème, également pour Java Pour Python, qui était la langue cible souhaitée, je l’ai trouvée en parcourant le code FirefoxProfile:

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

Qui, dans la mesure où j'ai testé, a produit le comportement attendu.

J'espère que cela aide quelqu'un!

7
Juan Carlos Coto

Je viens de trouver cela à partir du lien de bogue de la fondation Mozilla et cela a fonctionné pour moi.

caps.setCapability("acceptInsecureCerts",true)
16

Pas besoin de profils personnalisés pour traiter " Connexion non sécurisée " sur WebDriver

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
driver = new FirefoxDriver(capabilities);
5
Prashanth Sams

Aucune des réponses ci-dessus n'a fonctionné pour moi. J'utilise: 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 simplement en utilisant un profil FF personnalisé, ce qui était plus facile à faire que prévu. Utilisation de cette information https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager sur la création d'une personnalisation profil, j’ai fait ce qui suit: 1) Créer un nouveau profil 2) Se rendre manuellement sur le site en FF pour générer l’erreur de certificat non approuvée 3) Ajouter une exception de site (lorsque l’erreur est générée, cliquez sur 4) confirmez le fonctionnement de l'exception en rechargeant le site (vous ne devriez plus recevoir l'erreur 5) copiez le profil nouvellement créé dans votre projet (pour moi, il s'agit d'un projet de test Selenium) 6) Référencez le nouveau chemin de profil dans votre code

Je n'ai trouvé aucune des lignes suivantes 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 a fait . 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
Roochiedoor

Du début à la fin avec tous les accompagnements, 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
redwards510

J'ai ajouté le ci-dessous et puis cela a fonctionné pour moi 

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setAcceptInsecureCerts(true);
WebDriver driver = new FirefoxDriver(desiredCapabilities);
2
Sonam Varma

Dans mon cas, j'utilisais le pilote Marionette au lieu du pilote Firefox. Il existe un bogue reconnu ( https://bugzilla.mozilla.org/show_bug.cgi?id=1103196 ). 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
Ondrej Svejdar

Dans mon cas, cela a fait l'affaire

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
riccardo.tasso

Dans Java vous devez utiliser DesiredCapabilities.setAcceptInsecureCerts(). Pour obtenir un pilote Firefox avec une fonctionnalité et un profil personnalisés, procédez comme 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
Francois Bourgeois

Pour moi, en utilisant PHP facebook/webdriver j'ai créé un profil et 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.__, je mets const PROFILE = 'Selenium';

Cela a fonctionné pour moi.

1
Rafael Guimarães

Pour Firefox driver et Java, ajoutez 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
Vas Giatilis

La solution ci-dessus a fonctionné pour moi sur Firefox 54.0b9 (64 bits). Ceci est mon code.

  1. Créez vos capacités
  2. Créer un profil FF avec vos exigences
  3. Ajoutez 1. & 2. aux options de Firefox et transmettez-le à 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
Vishwanath

Cette configuration fonctionne pour moi en PHP

public function setUp()
{
    $this->setHost('localhost');
    $this->setPort(4444);
    $this->setBrowserUrl('https://example.loc');
    $this->setBrowser('firefox');
    $this->setDesiredCapabilities(["acceptInsecureCerts" => true]);
}

Pour Firefox, je cours

Java -jar Selenium-server-standalone-3.8.1.jar -enablePassThrough false
0
pevac