我需要使用 selenium 自动选择我自己的证书。经过一些研究,我发现最好的方法是创建一个 Firefox 配置文件,添加证书并在 Selenium Webdriver 中“导入”我的配置文件。
- 真正的问题:IMG - 需要选择证书
我想做什么?
- 在 Firefox 上创建个人资料用户
- 添加我的证书
- Selenium 导入此配置文件
会发生什么?
- 如果我打开请求我的证书的 URL,它可以正常工作。IMG - 手动打开 Firefox 有证书
- 如果尝试使用 Selenium Python 访问 URL,Firefox 无法识别我的证书。IMG - 通过 Selenium 打开 Firefox 没有我的证书
# Open My Profile
profile = webdriver.FirefoxProfile('/home/USERNAME/.mozilla/firefox/ri4nkdyn.default')
# Preferences that I tested
profile.set_preference("security.default_personal_cert", "Select Automatically")
profile.set_preference("security.osclientcerts.autoload", True)
profile.set_preference("security.disable_button.openCertManager", True)
profile.set_preference("security.enterprise_roots.enabled", True)
profile.set_preference("accept_untrusted_certs", True)
profile.set_preference("assume_untrusted_cert_issuer", True)
# Firefox Binary
ff_binary = FirefoxBinary('/usr/bin/firefox')
# Desired Capabilities that I tested
desired_capabilities = DesiredCapabilities.FIREFOX.copy()
desired_capabilities["acceptInsecureCerts"] = True
desired_capabilities['acceptSslCerts'] = True
# Create the Webdriver Firefox
driver = webdriver.Firefox(
firefox_binary=ff_binary,
firefox_profile=profile,
desired_capabilities=desired_capabilities
)
我该如何解决这个问题?怎么了?