Как отключить предупреждение ненадежного соединения Firefox с использованием Selenium?

Попытка найти способ отключить Firefox от предупреждения предупреждения каждый раз, когда соединение использует «ненадежный» сертификат, с Selenium. Я считаю, что решение, которое будет работать лучше всего, – это установить одну из настроек браузера.

Огромное спасибо! Любые предложения будут оценены!

Просто нашел это из ссылки на ошибку Mozilla Foundation, и это сработало для меня.

caps.setCapability("acceptInsecureCerts",true) 

Я нашел этот комментарий для включения этой функции в Selenium для Java . Существует также этот вопрос StackOverflow по той же проблеме, также для Java For Python, который был моим целевым языком, я придумал это, просмотрев код FirefoxProfile :

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

Что, насколько я тестировал, вызвало ожидаемое поведение.

Надеюсь, это поможет кому-то!

Нет необходимости настраивать профили для работы с « ненадежным соединением » на WebDriver

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

От начала до конца со всеми обрезками, на C #. Обратите внимание, что я установил FFv48 в пользовательский каталог, потому что GeckoDriver требует эту конкретную версию.

  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)); 

Ни один из вышеперечисленных ответов не работал для меня. Я использую: https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

Firefox 50.1.0

Python 3.5.2

Селен 3.0.2

Windows 10

Я разрешил его только с помощью пользовательского профиля FF, который был легче сделать, чем я ожидал. Используя эту информацию https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager о том, как создать настраиваемый профиль, я сделал следующее: 1) Создал новый профиль 2) Вручную отправился на сайт в FF, чтобы поднять недоверенную ошибку сертификата. 3) Добавить исключение сайта (когда ошибка поднята, нажмите «Дополнительно», а затем добавьте исключение). 4) подтвердите, что исключение работает перезагрузка сайта (вы больше не должны получать ошибку 5) Скопируйте новый профиль в свой проект (для меня это проект тестирования seleniumа). 6) Ссылка на новый путь профиля в вашем коде

Я не нашел ни одной из следующих строк, разрешавших проблему для меня:

 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 

Но использование пользовательского профиля, как указано выше, сделало. Вот мой код:

 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') 

В моем случае я использовал драйвер Marionette вместо Firefox. Для этого есть признанная ошибка ( https://bugzilla.mozilla.org/show_bug.cgi?id=1103196 ). Тем временем вместо этого я использую драйвер Firefox:

 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 - ie don't use Marionette dc.setCapability(FirefoxDriver.MARIONETTE, false); Webdriver driver = new FirefoxDriver(dc); 

Я добавил ниже, а затем это сработало для меня

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

Для меня, используя PHP facebook/webdriver я установил создание профиля и разрешил сертифицированный. Название профиля – selenium .

Затем я инициализирую свой selenium 3:

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

Затем в FirefoxDriver.php я устанавливаю const PROFILE = 'selenium';

Это сработало для меня.

Для Firefox driver и Java добавьте следующие строки:

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

Если вы используете geckodriver , не забудьте добавить это до инициализации профиля:

 System.setProperty("webdriver.gecko.driver","\\geckodriver.exe"); 

В Java вы должны использовать DesiredCapabilities.setAcceptInsecureCerts() . Чтобы получить FirefoxDriver с настраиваемыми возможностями и профилем, выполните следующие действия:

 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); 

Выше решение работало для меня на Firefox 54.0b9 (64-разрядная версия). Это мой код.

  1. Создайте свои возможности
  2. Создайте профиль FF с вашими требованиями
  3. Добавьте варианты 1. и 2. в Firefox и передайте их FirefoxDriver

Как ниже

 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); 

В моем случае это сделало трюк

 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); 
Давайте будем гением компьютера.