Як адключыць папярэджанне ненадзейнага злучэння Firefox, з дапамогай Selenium?

Спрабуючы знайсці спосаб адключыць Firefox ад выхоўвае Папярэджанні кожны раз, калі злучэнне выкарыстоўвае «ненадзейны» сертыфікат, з селенам. Я лічу, што свайго роду рашэнне, якое будзе працаваць лепш было б ўсталяваць адзін з налад браўзэра.

Вялікі дзякуй! Любыя прапановы будуць ацэнены!

17
@JuanCarlosCoto Для фіксацыі праблемы, вы можаце таксама паглядзець на мой адказ на Як адключыць" гэта злучэнне ненадзейны "Сертыфікат ў FireFox? Спадзяюся, што гэта дапамагае ...
дададзена аўтар Murat Yıldız, крыніца
Firefox, як правіла, не паказвае экран памылкі сертыфіката. Па змаўчанні ён апрацоўваецца ў Firefox і хром. Толькі IE яна не апрацоўваецца.
дададзена аўтар Vinay, крыніца

11 адказы

Толькі што знайшоў гэта ад памылак спасылкі Mozilla Foundation і ён працаваў на мяне.

caps.setCapability("acceptInsecureCerts",true)
12
дададзена
Я бягу Селен Паўсюдна nightwatch.js, і гэта працуе для мяне. (<�Код> "acceptInsecureCerts": праўда )
дададзена аўтар Adrian Schmidt, крыніца
Гэты адказ дапамог мне вырашыць гэтую праблему. Вялікі дзякуй за адказ.
дададзена аўтар Bindu, крыніца

Я знайшоў гэты каментар аб ўключэнні гэтай функцыі ў Selenium для Java , Існуе таксама гэты StackOverflow пытанне аб тым жа нумары, а таксама для Java для Python, які быў маім жаданы мэтавай мова, я прыдумаў гэта, праз прагляд FirefoxProfile код:

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

Які, наколькі я адчуў, вырабіў чаканае паводзіны.

Спадзяюся, што гэта дапамагае нехта!

6
дададзена
Можа хто-небудзь, дайце мне ведаць, як я магу дамагчыся гэтага ў PHP з дапамогай Facebook WebDriver?
дададзена аўтар Gohel Kiran, крыніца

Няма неабходнасці карыстацкіх профіляў, каб мець справу з «<�моцны> Untrusted злучэнне » на WebDriver

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
driver = new FirefoxDriver(capabilities);
5
дададзена
Я downvoted па памылцы
дададзена аўтар jamming, крыніца

None of the above answers worked for me. I'm using: 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

вокны 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) Скапіюйце зноў стварыць профіль у свой праект (для мяне гэтага выпрабаванні селену праекта) 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')
3
дададзена

Ад пачатку да канца з усімі аздабленне, ў 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));
3
дададзена

У маім выпадку я выкарыстаў драйвер марыянетак замест драйвера 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 - i.e. don't use Marionette
dc.setCapability(FirefoxDriver.MARIONETTE, false);

Webdriver driver =  new FirefoxDriver(dc);
2
дададзена
Гэтая памылка цяпер адзначана як фіксаваная, вы можаце прапанаваць, як выкарыстоўваць драйвер фіксаваных марыянетак (я запампаваў geckodriver.exe 0.11.1, які, верагодна, не ўтрымлівае выпраўленне яшчэ).
дададзена аўтар Vojtěch Dohnal, крыніца
гэта працавала для мяне
дададзена аўтар Marco, крыніца

Я дадаў ніжэй, а затым ён працаваў для мяне

DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setAcceptInsecureCerts(true);
WebDriver driver = new FirefoxDriver(desiredCapabilities);
2
дададзена
Гэта Java, правільна? Добра мець альтэрнатыўныя варыянты на іншых мовах!
дададзена аўтар Juan Carlos Coto, крыніца

Для драйвер Firefox і 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");
1
дададзена
Гэта адзіны адказ, які працуе для мяне
дададзена аўтар angeldev, крыніца

У <�моцны> 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);
1
дададзена

Для мяне, выкарыстоўваючы PHP facebook/WebDriver Я усталяваў стварыць профіль і ўпаўнаважыла сертыфікацыю. Імя профілю было селенам .

Далей я ініцыялізуюцца мой селен 3:

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

Then in FirefoxDriver.php I set const PROFILE = 'selenium';

Гэта працуе для мяне.

1
дададзена

Над растворам працаваў для мяне на Firefox 54.0b9 (64-разрадная версія). Гэта мой код.

  1. Create your capabilities
  2. Create FF Profile with your requirements
  3. Add 1. & 2. to Firefox Options and pass it to 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);       
0
дададзена