Google chrome 处理';选择数字证书';使用SeleniumWebDriverChrome

Google chrome 处理';选择数字证书';使用SeleniumWebDriverChrome,google-chrome,selenium,python-2.7,certificate,webdriver,Google Chrome,Selenium,Python 2.7,Certificate,Webdriver,当我用SeleniumWebDriver打开页面时,我会看到一个chrome对话框“选择证书”。默认证书是正确的,因此我只需单击“确定”按钮。但我有这个问题。我有python代码: drv = webdriver.Chrome() drv.get("https://example.com/login") 然后我想做一些事情,比如: drv.switch_to_alert().accept() 或 问题是代码停止在drv.get(“”)行上执行。Webdriver正在等待页面加载。在这行

当我用SeleniumWebDriver打开页面时,我会看到一个chrome对话框“选择证书”。默认证书是正确的,因此我只需单击“确定”按钮。但我有这个问题。我有python代码:

drv = webdriver.Chrome()   
drv.get("https://example.com/login")
然后我想做一些事情,比如:

drv.switch_to_alert().accept()

问题是代码停止在drv.get(“”)行上执行。Webdriver正在等待页面加载。在这行之前没有chrome对话框


如何处理此问题?

您必须使用类似AutoIT的功能:


你为什么问?这是一个操作系统对话框,Selenium不会也可能永远不会处理,因此您必须求助于其他解决方案(例如,在C语言中,您应该使用本机Win32 API方法来单击按钮)。

证书由操作系统管理,而不是由浏览器管理。从浏览器的证书存储中删除除必要证书以外的所有证书,然后将浏览器配置为仅存在一个证书时自动选择证书。您还可以创建一个浏览器配置文件,让您的程序启动此配置文件或避免通过HTTPS进行测试。

在处理此处的任何内容之前,请添加以下内容,以便在导航/触发证书弹出窗口时不会立即冻结。请记住稍后添加正确的等待时间

 getDriver().manage().timeouts().pageLoadTimeout(1000, TimeUnit.MILLISECONDS); 

之后,您可以尝试使用键盘或autoIt

您如何配置chrome以接受默认证书而不询问?您在Linux上做什么?
 getDriver().manage().timeouts().pageLoadTimeout(1000, TimeUnit.MILLISECONDS);