it-swarm.com.de

So deaktivieren Sie die nicht vertrauenswürdige Warnmeldung von Firefox mit Selenium?

Der Versuch, eine Möglichkeit zu finden, wie Firefox eine Warnung auslöst, wenn eine Verbindung ein "nicht vertrauenswürdiges" Zertifikat mit Selenium verwendet. Ich glaube, dass die beste Lösung die beste Lösung wäre, wenn Sie eine der Browsereinstellungen festlegen.

Vielen Dank! Alle Vorschläge werden geschätzt!

18

Ich habe diesen Kommentar zur Aktivierung dieser Funktionalität in Selenium für Java gefunden. Es gibt auch diese StackOverflow-Frage zum gleichen Thema, auch für Java Für Python, die meine gewünschte Zielsprache war, kam ich durch das Durchsuchen des FirefoxProfile-Codes dazu:

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

Was, soweit ich es getestet habe, das erwartete Verhalten hervorgebracht hat.

Hoffe das hilft jemandem!

7

Ich fand das gerade aus dem Mozilla Foundation Bug Link und es funktionierte für mich.

caps.setCapability("acceptInsecureCerts",true)
16

Keine benutzerdefinierten Profile für " Nicht vertrauenswürdige Verbindung " auf WebDriver erforderlich

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

Keine der obigen Antworten funktionierte für mich. Ich verwende: https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.Zip

Firefox 50.1.0

Python 3.5.2

Selen 3.0.2

Windows 10

Ich habe das Problem gelöst, indem ich ein benutzerdefiniertes FF-Profil verwendet habe, das einfacher als erwartet war. Verwenden Sie diese Informationen https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager , um eine benutzerdefinierte Anwendung zu erstellen Für das Profil habe ich Folgendes ausgeführt: 1) Neues Profil erstellt 2) Die Site in FF wurde manuell aufgerufen, um den Fehler des nicht vertrauenswürdigen Zertifikats anzuzeigen 3) Fügen Sie eine Standortausnahme hinzu (wenn der Fehler ausgelöst wird, klicken Sie auf Erweitert und dann Ausnahme hinzufügen) 4) Bestätigen Sie die Ausnahmefunktionen, indem Sie die Site neu laden (Sie sollten den Fehler nicht mehr erhalten 5.) Kopieren Sie das neu erstellte Profil in Ihr Projekt (für mich ist es ein Selenium-Testprojekt) 6) Verweisen Sie auf den neuen Profilpfad in Ihrem Code

Ich habe keine der folgenden Zeilen gefunden, die das Problem für mich gelöst haben:

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

Mit einem benutzerdefinierten Profil, wie oben erwähnt, wurde jedoch Folgendes ausgeführt: Hier ist mein 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

Von Anfang bis Ende mit allem, in C #. Beachten Sie, dass ich FFv48 in einem benutzerdefinierten Verzeichnis installiert habe, da GeckoDriver diese Version benötigt.

    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

Ich fügte das unten hinzu und dann funktionierte es für mich 

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

In meinem Fall habe ich Marionette-Treiber anstelle von Firefox-Treiber verwendet. Es gibt einen bekannten Fehler ( https://bugzilla.mozilla.org/show_bug.cgi?id=1103196 ) dafür. In der Zwischenzeit verwende ich stattdessen den Firefox-Treiber:

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

In meinem Fall hat das funktioniert

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

In Java müssen Sie DesiredCapabilities.setAcceptInsecureCerts() verwenden. So erhalten Sie einen FirefoxDriver mit benutzerdefinierten Funktionen und Profilen:

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

Für mich setze ich mit PHP facebook/webdriver ein Profil erstellen und autorisierte das zertifizierte. Der Name des Profils war Selenium.

Als nächstes initialisiere ich mein Selenium 3:

Java -jar -Dwebdriver.firefox.profile=Selenium selenium-server-standalone-3.0.1.jar

Dann in FirefoxDriver.php Ich setze const PROFILE = 'Selenium';

Das hat bei mir funktioniert.

1

Fügen Sie für Firefox driver und Java folgende Zeilen hinzu:

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

Wenn Sie geckodriver verwenden, vergessen Sie nicht, dies vor der Profilinitialisierung hinzuzufügen:

System.setProperty("webdriver.gecko.driver","<PATH_TO_GECKODRIVER>\\geckodriver.exe");
1
Vas Giatilis

Die obige Lösung funktionierte für mich bei Firefox 54.0b9 (64-Bit). Das ist mein Code.

  1. Erstellen Sie Ihre Fähigkeiten
  2. Erstellen Sie ein FF-Profil mit Ihren Anforderungen
  3. Fügen Sie 1. & 2. zu Firefox-Optionen hinzu und übergeben Sie es an FirefoxDriver

Wie unten

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

Diese Konfiguration funktioniert für mich in PHP

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

Für Firefox starte ich

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