如何使用Selenium Webdriver + Java处理IE8中的自签名证书错误

mutmk8jj  于 2023-01-09  发布在  Java
关注(0)|答案(3)|浏览(164)

我真的被这个问题困了两天了。
场景:
需要测试的网站有一个自签名证书,所以InternetExplorer(WindowsXP中的8)显示
"此网站提供的安全证书不是由受信任的证书颁发机构颁发的。此网站提供的安全证书是为其他网站地址颁发的。"
对于IE8和自签名证书,这是很自然的,所以我采取了以下措施,但没有效果
1.在IE中手动添加/安装证书作为受信任根证书。但它不会显示在列表中,但它会成功添加到所有其他选项卡,即受信任根发布者、中间发布者授权、其他人。
1.相同的证书被添加到firefox的"服务器"下没有任何问题,并按预期工作。
1.我尝试使用以下代码,但其中一个对 selenium 有效

Proxy proxy = new Proxy();
proxy.setProxyType(ProxyType.MANUAL);
Proxy.setSslProxy("trustAllSSLCertificates");
DesiredCapabilities capabilities1 = DesiredCapabilities.internetExplorer();
capabilities1.setCapability(CapabilityType.PROXY, proxy);

当这个不起作用的时候我试着用

DesiredCapabilities capabilities = new DesiredCapabilities();
                            capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);

我已经安装了cybervillans证书。
1.我已经尝试了HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312方法,完全知道它是为win7。
5.我甚至尝试过将URL更改为颁发的权威,但即使这样,问题仍然存在。
现在我已经没有选择了。谁能告诉我该怎么做?我好像永远都被IE8困住了。
我已经在谷歌搜索了很多,以及在这个网站。但找不到一个解决我的问题。

abithluo

abithluo1#

当我在我们网站的开发/测试版本中使用Selenium时,经常会看到IE屏幕显示无效证书。
驱动程序.Navigate().GoToUrl(“javascript:文档.getElementById('覆盖链接').单击()”)
您看到的屏幕可能与错误证书屏幕略有不同,因此只需调整getElementById选择器以匹配锚的ID。

j91ykkif

j91ykkif2#

我用它就像罗伯特写的,像这样:

if (driver instanceof InternetExplorerDriver) {
        driver.navigate().to("javascript:document.getElementById('overridelink').click()");
    }
relj7zay

relj7zay3#

此更改将永久接受IE中的所有证书错误,但仍然,优雅的解决方案:https://stackoverflow.com/a/7738795/2546759

相关问题