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

时间:2012-06-14 13:51:11

标签: selenium internet-explorer-8 ssl-certificate

我现在坚持这个问题两天了。

情景:

需要测试的网站有自签名证书。所以Internet Explorer(Windows XP中的8个显示

  

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

现在这在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);
    
  4. 如果这不起作用,我尝试使用

    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。
    2. 5.我甚至尝试将URL更改为已颁发的权限,但即使这样,问题仍然存在。

      现在我无法选择。 任何人都可以向我指出我如何进行? 看来我永远坚持使用IE8。

      我在谷歌以及本网站上搜索了很多。但无法找到解决我问题的方法。

3 个答案:

答案 0 :(得分:0)

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

driver.Navigate()GoToUrl( “JavaScript的:的document.getElementById( 'overridelink')点击()”)。

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-1)

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