如何使用 selenium 和 python 在 IE 中处理 SSL 证书?

How to handle SSL Certificate in IE using selenium with python?

我遇到了图片中的错误。 Error_img

我尝试了下面的代码来解决。

方法一:

from selenium import webdriver

from selenium.webdriver.ie.options import Options

options = Options()

options.set_capability={"acceptInsecureCerts", True}

options.set_capability={"ignoreProtectedModeSettings":True, "ignoreZoomSetting":True}

driver = webdriver.Ie(options=options,executable_path='D:/
Project/Testing/IEDriverServer_Win32_3.150.1/IEDriverServer.exe')

driver.get(url)

options.set_capability={"ie.ensureCleanSession",True}

driver.close()

方法二:

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_capabilities = DesiredCapabilities.INTERNETEXPLORER.copy()

desired_capabilities['acceptInsecureCerts'] = True

driver = webdriver.Ie(capabilities=desired_capabilities,executable_path='E:/DriverServer_Win32_3.150.1/IEDriverServer.exe')

driver.get(url)

print(driver.title)

driver.close()

**不能分享URL所以我只写了URL字

我尝试了这两种代码,但都不起作用

还有其他解决方案吗?**

acceptInsecureCerts 功能不起作用,因为 IE 不允许接受它。您可以参考this link了解更多详细信息。

在 IE 11 中,您可以单击 link 转到网页(不推荐) 作为绕过 SSL 证书错误的解决方法。这个 link 有一个 id “overridelink”。您可以使用 F12 开发工具找到 ID。

我以这个网站:https://expired.badssl.com/为例,示例代码如下:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time

url = "https://expired.badssl.com/"

ieoptions = webdriver.IeOptions()
ieoptions.ignore_protected_mode_settings = True    

driver = webdriver.Ie(executable_path='IEDriverServer.exe', options=ieoptions)
driver.get(url)
time.sleep(3)
driver.find_element_by_id('moreInfoContainer').click()
time.sleep(3)
driver.find_element_by_id('overridelink').click()

在IE 11下效果很好,你也可以试试同样的方法