我真的被这个问题困住了两天了。
场景:
需要测试的网站具有自签名证书。所以IE浏览器(8在窗口XP_显示
"本网站提供的安全证书不是由受信任的证书颁发机构颁发的。 本网站提供的安全证书是为不同网站的地址颁发的。
现在,在IE8和自签名证书的情况下,这是完全自然的,所以我采取了以下措施没有用
- 在 IE 中手动添加/安装证书作为受信任的根证书。但它没有显示在列表中,但它已成功添加到所有其他选项卡,即受信任的根发布者、中间发布者颁发机构、其他人。
- 相同的证书被添加到Firefox中,在"服务器"下没有任何问题,并且按预期工作。
-
我尝试使用以下代码,但其中一个适用于硒
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);
我已经安装了网络恶棍证书。
- 我已经尝试过HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312方法完全知道它是win7。
5.我什至尝试将URL更改为颁发的颁发机构,但即便如此,问题仍然存在。
现在我别无选择。谁能向我指出我该如何进行?似乎我永远坚持使用IE8。
我在谷歌和这个网站上搜索了很多。但是找不到解决我的问题的方法。
当我在我们网站的开发/测试版本中使用 Selenium 时,我经常看到无效证书的 IE 屏幕。若要传递这些内容,请将以下内容发送到 IWebDriver 实例
司机。导航()。GoToUrl("javascript:document.getElementById('overridelink').click()")
您看到的屏幕可能与错误的证书屏幕略有不同,因此只需调整 getElementById 选择器以匹配定位点的 ID。
我像罗伯特写的那样使用它,如下所示:
if (driver instanceof InternetExplorerDriver) {
driver.navigate().to("javascript:document.getElementById('overridelink').click()");
}
此更改将永久接受IE中的所有证书错误,但仍然是优雅的解决方案:https://stackoverflow.com/a/7738795/2546759