How to deal with certificates using Selenium?

0
0

I am using Selenium to launch a browser. How can I deal with the webpages (URLs) that will ask the browser to accept a certificate or not?

In Firefox, I may have a website like that asks me to accept its certificate like this:

Firefox

On the Internet Explorer browser, I may get something like this:

Enter image description here

On Google Chrome:

Google Chrome

I repeat my question: How can I automate the acceptance of a website’s certificate when I launch a browser (Internet Explorer, Firefox and Google Chrome) with Selenium (Python programming language)?

  • You must to post comments
0
0

For the Firefox, you need to set accept_untrusted_certs FirefoxProfile() option to True:

from selenium import webdriver
profile
= webdriver.FirefoxProfile()
profile
.accept_untrusted_certs = True
driver
= webdriver.Firefox(firefox_profile=profile)
driver
.get('https://cacert.org/')
driver
.close()

For Chrome, you need to add --ignore-certificate-errors ChromeOptions() argument:

from selenium import webdriver
options
= webdriver.ChromeOptions()
options
.add_argument('--ignore-certificate-errors')
driver
= webdriver.Chrome(chrome_options=options)
driver
.get('https://cacert.org/')
driver
.close()

For the Internet Explorer, you need to set acceptSslCerts desired capability:

from selenium import webdriver
capabilities
= webdriver.DesiredCapabilities().INTERNETEXPLORER
capabilities
['acceptSslCerts'] = True
driver
= webdriver.Ie(capabilities=capabilities)
driver
.get('https://cacert.org/')
driver
.close()


Actually, according to the Desired Capabilities documentation, setting acceptSslCerts capability to True should work for all browsers since it is a generic read/write capability:

acceptSslCerts

boolean

Whether the session should accept all SSL certs
by default.


Working demo for Firefox:

>>> from selenium import webdriver

Setting acceptSslCerts to False:

>>> capabilities = webdriver.DesiredCapabilities().FIREFOX
>>> capabilities['acceptSslCerts'] = False
>>> driver = webdriver.Firefox(capabilities=capabilities)
>>> driver.get('https://cacert.org/')
>>> print(driver.title)
Untrusted Connection
>>> driver.close()

Setting acceptSslCerts to True:

>>> capabilities = webdriver.DesiredCapabilities().FIREFOX
>>> capabilities['acceptSslCerts'] = True
>>> driver = webdriver.Firefox(capabilities=capabilities)
>>> driver.get('https://cacert.org/')
>>> print(driver.title)
Welcome to CAcert.org
>>> driver.close()
  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website