问题描述
如何禁用 Chrome 对自签名 SSL 证书的验证?
我正在尝试在 Python 中使用 Selenium 对移动 Web 应用程序进行单元测试。因为它访问浏览器的麦克风,所以它必须使用 https,即使它只是一个临时或自签名证书。
但是,当 Selenium 加载初始页面时,它会收到警告页面“您的连接不是私密的”,您必须导航到“高级”按钮菜单才能覆盖错误。
无论如何要覆盖这个还是我总是必须在我的测试前加上前缀?
driver.find_element_by_id('details-button').click()
driver.find_element_by_id('proceed-link').click()
此外,即使我单击适当的按钮进行覆盖,我的测试在提示用户访问麦克风时仍需要单击“允许”。但是,既然那不是网络元素,Selenium 就没有办法点击它吗?是否有任何配置选项可以禁用和自动批准该访问?
解决方法
我相信这是一个重复的问题:
How to deal with certificates using Selenium?
根据那个答案,对于 Chrome:
对于 Chrome,您需要添加 --ignore-certificate-errors ChromeOptions() 参数:
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()