Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Selenium Webdriver处理IE8中的自签名证书错误&x2B;JAVA_Selenium_Internet Explorer 8_Ssl Certificate - Fatal编程技术网

如何使用Selenium Webdriver处理IE8中的自签名证书错误&x2B;JAVA

如何使用Selenium Webdriver处理IE8中的自签名证书错误&x2B;JAVA,selenium,internet-explorer-8,ssl-certificate,Selenium,Internet Explorer 8,Ssl Certificate,我真的被这个问题困扰了两天 情景: 需要测试的网站具有自签名证书。因此,Internet Explorer(windows XP中的8)显示 “此网站提供的安全证书不是由受信任的证书颁发机构颁发的。 本网站提供的安全证书是针对其他网站的地址颁发的。” 现在,对于IE8和自签名证书来说,这是非常自然的,所以我采取了以下措施,但毫无用处 在IE中手动添加/安装证书作为受信任的根证书。但该证书未显示在列表中,但已成功添加到所有其他选项卡,即受信任的根发布者、中间发布者授权机构和其他人 相同的证书添加到

我真的被这个问题困扰了两天

情景:

需要测试的网站具有自签名证书。因此,Internet Explorer(windows XP中的8)显示

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

现在,对于IE8和自签名证书来说,这是非常自然的,所以我采取了以下措施,但毫无用处

  • 在IE中手动添加/安装证书作为受信任的根证书。但该证书未显示在列表中,但已成功添加到所有其他选项卡,即受信任的根发布者、中间发布者授权机构和其他人
  • 相同的证书添加到firefox中,在“服务器”下没有任何问题,并且工作正常
  • 我尝试使用以下代码,但其中一个代码适用于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证书

  • 我已经试过了 方法非常清楚它适用于win7
  • 5.我甚至尝试将URL更改为已颁发的权限,但即使如此,问题仍然存在

    现在我别无选择。 有人能告诉我怎么做吗? 看来我一直被IE8束缚着


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

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

    driver.Navigate().gotour(“javascript:document.getElementById('overridelink')。click()”)


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

    我使用它就像Robert写的那样,如下所示:

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

    此更改将永久接受IE中的所有证书错误,但仍然是一个优雅的解决方案:

    您使用的是IEDriverServer吗?@A.J我使用的是InternetExplorer web驱动程序。是的。IEDriverServer内部我知道这种方法。但是由于我的测试包必须是跨浏览器兼容的,所以我也需要它来为FF工作。现在,如果我将信任证书放在FF中的受信任源中,它就可以正常工作,但在这种情况下,如果我将它放在脚本它将因FF(或铬)而失效>这是我现在关心的问题。每个浏览器处理证书问题的方式都不同。当我使用ChromeDriver时,我会传递--ignore certificate errors参数。IE无法做到这一点,因此我需要一种传递表单的方式。不知道FF,我不经常使用该浏览器进行测试。我还在IWebDriver周围包装一个允许协商的外观每个驱动程序实现定制的SSL证书数量