firefox - sec_error_unknown_issuer - su conexión no es segura solucion chrome
¿Cómo deshabilitar la advertencia de conexión no confiable de Firefox usando Selenium? (13)
Acabo de encontrar esto en el enlace de error de la Fundación Mozilla y funcionó para mí.
caps.setCapability("acceptInsecureCerts",true)
Intentar encontrar una manera de impedir que Firefox emita una advertencia cada vez que una conexión utiliza un certificado "no confiable", con Selenium. Creo que el tipo de solución que funcionaría mejor sería establecer una de las preferencias del navegador.
¡Muchas gracias! ¡Cualquier sugerencia será apreciada!
Agregué lo de abajo y luego me funcionó.
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setAcceptInsecureCerts(true);
WebDriver driver = new FirefoxDriver(desiredCapabilities);
De principio a fin con todos los adornos, en C #. Tenga en cuenta que había instalado FFv48 en un directorio personalizado porque GeckoDriver requiere esa versión específica.
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));
En Java tienes que usar DesiredCapabilities.setAcceptInsecureCerts()
. Para obtener un FirefoxDriver con capacidad y perfil personalizados, haga lo siguiente:
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);
En mi caso esto hizo el truco.
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);
En mi caso, estaba usando el controlador Marionette en lugar del controlador Firefox. Hay un error reconocido ( https://bugzilla.mozilla.org/show_bug.cgi?id=1103196 ) para ello. Mientras tanto estoy usando el controlador de Firefox en su lugar:
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);
En mi caso, utilizando PHP facebook/webdriver
establecí crear un perfil y facebook/webdriver
el certificado. El nombre de perfil era selenium
.
A continuación inicializo mi selenio 3:
java -jar -Dwebdriver.firefox.profile=selenium selenium-server-standalone-3.0.1.jar
Luego, en FirefoxDriver.php
, establezco const PROFILE = ''selenium'';
Esto funcionó para mí.
Encontré este comentario sobre la habilitación de esta funcionalidad en Selenium para Java . También está esta pregunta de sobre el mismo problema, también para Java para Python, que era mi idioma de destino deseado, se me ocurrió esto, a través de la navegación del código de FirefoxProfile
:
profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
Que, hasta donde he probado, ha producido el comportamiento esperado.
Espero que esto ayude a alguien!
Esta configuración me funciona en PHP
public function setUp()
{
$this->setHost(''localhost'');
$this->setPort(4444);
$this->setBrowserUrl(''https://example.loc'');
$this->setBrowser(''firefox'');
$this->setDesiredCapabilities(["acceptInsecureCerts" => true]);
}
Para Firefox corro
java -jar selenium-server-standalone-3.8.1.jar -enablePassThrough false
La solución anterior me funcionó en Firefox 54.0b9 (64 bits). Este es mi código.
- Crea tus capacidades
- Crea FF Profile con tus requerimientos
- Agregue 1. y 2. a las opciones de Firefox y páselo a FirefoxDriver
Como abajo
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);
Ninguna de las respuestas anteriores funcionó para mí. Estoy usando: https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip
Firefox 50.1.0
Python 3.5.2
Selenio 3.0.2
Windows 10
Lo resolví simplemente usando un perfil FF personalizado que era más fácil de hacer de lo que esperaba. Usando esta información https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager sobre cómo hacer un perfil personalizado, lo hice lo siguiente: 1) Crear un nuevo perfil 2) Ir manualmente al sitio en FF para generar el error del certificado no confiable 3) Agregar una excepción del sitio (cuando se presenta el error, hacer clic en Avanzado y luego agregar la excepción) 4) confirmar que la excepción funciona volver a cargar el sitio (ya no debería recibir el error 5) Copie el nuevo perfil creado en su proyecto (para mí es un proyecto de prueba de selenio) 6) Haga referencia a la nueva ruta de perfil en su código
No encontré ninguna de las siguientes líneas que resolvieron el problema por mí:
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
Pero el uso de un perfil personalizado como se mencionó anteriormente lo hizo. Aquí está mi código:
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://.com'')
No se necesitan perfiles personalizados para lidiar con la " conexión no confiable " en WebDriver
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
driver = new FirefoxDriver(capabilities);
Para el Firefox driver
y Java
agrega estas líneas:
WebDriver driver;
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("default");
testprofile.setAcceptUntrustedCertificates(true);
testprofile.setAssumeUntrustedCertificateIssuer(true);
driver = new FirefoxDriver(testprofile);
Si usa geckodriver
, no olvide agregar esto antes de la inicialización del perfil:
System.setProperty("webdriver.gecko.driver","<PATH_TO_GECKODRIVER>//geckodriver.exe");