3

我现在已经被这个问题困扰了两天。

设想:

需要测试的网站有自签名证书。所以 Internet Explorer (8 in windows XP_ 显示

“本网站提供的安全证书不是由受信任的证书颁发机构颁发的。本网站提供的安全证书是针对不同网站的地址颁发的。”

现在这在 IE8 和自签名证书的情况下是非常自然的,所以我采取了以下措施没有用

  1. 在 IE 中手动添加/安装证书作为受信任的根证书。但它不会显示在列表中,但它会成功添加到所有其他选项卡,即受信任的根发布者、中间发布者权限、其他人。
  2. 相同的证书被添加到 Firefox,在“服务器”下没有任何问题,并且按预期工作。
  3. 我尝试使用以下代码,但其中一个适用于 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。

我在谷歌和这个网站上搜索了很多。但找不到我的问题的解决方案。

4

3 回答 3

0

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

 if (driver instanceof InternetExplorerDriver) {
        driver.navigate().to("javascript:document.getElementById('overridelink').click()");
    }
于 2013-10-01T16:51:31.130 回答
0

当我在我们网站的开发/测试版本中使用 selenium 时,我经常会在 IE 屏幕上看到无效证书。要传递这些,您将以下内容发送到 IWebDriver 实例

driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()")

您看到的屏幕可能与错误证书屏幕略有不同,因此只需调整 getElementById 选择器以匹配锚的 Id。

于 2012-06-20T23:51:29.020 回答
-1

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

于 2014-04-10T06:39:35.867 回答