该网站的安全性存在问题证书。
此时测试挂起并最终失败。
我尝试了:点击“继续浏览此网站(不推荐)”。链接。无法执行此操作,因为此错误页面不是您通常的页面。与JavaScript相同-不会执行。
我尝试添加注册表项(HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ MAIN \ FeatureControl \ FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312),但未显示-没有工作。可能是因为我在使用IE9的Windows 7上。我没有对我的PC的管理员访问权限-例如无法访问组策略。 Selenium 2 WebDriver在Firefox上可以正常工作。我已经在IE Internet选项中启用了所有安全区域,并且如果我在其他URL(HTTP)上运行测试,那么就没有问题。有谁知道热衷于有效使用BrowserMob代理(或任何其他代理)来克服此问题?
,谢谢,
#1 楼
根据您的特定公司的设置方式,有两种解决方案。最简单的是,如果您运行测试的计算机与托管站点的服务器位于同一域中。让管理服务器的团队创建一个自签名证书,并将该证书添加到您的计算机中。如果自签名路由不起作用,则可能需要另一个团队参与。如果有人可以从您的生产证书颁发机构颁发证书,请让他们创建并添加到您的测试服务器。然后,将证书导入到您的机器中。
评论
我将进行调查,并让您知道它的运行情况。试图投票给你,但我的声誉点太少了。非常感谢。
– damo_inc
2011年10月11日下午6:46
在许多情况下,我发现自签名是最好的解决方案,我确实获得了FF和IE8的安全例外附加组件,可以在我的环境中解决此问题。尚未在我的环境中尝试IE9,但我希望它会是相同的。
– MichaelF
2011年10月11日20:33
#2 楼
尝试单击“继续浏览此网站(不推荐)”。链接以以下方式(适用于EI7,IE8的我):webDriver.navigate().to("javascript:document.getElementById('overridelink').click()");
#3 楼
好的,我可以使用C#和以下代码在IE9下运行它:#4 楼
我很高兴找到了这个消息线程。我必须使用不同版本的webdriver,并且以下行使用IE8对我有效。谢谢。 driver.execute_script("document.getElementById('overridelink').click()");
编辑添加:
忘记提及我的driver = webdriver.Ie()了!
评论
嗨,戴夫-欢迎来到SQA!我进行了编辑以添加您在第二个答案中提供的信息-我现在将其删除,否则会造成混乱:)
– testerab
2012年2月9日在22:38
#5 楼
当我在测试中实例化IE8时,此代码将始终运行。效果很好。#region SSL workaround for IE
if (driver.GetType() == typeof(InternetExplorerDriver) && driver.Title.Contains("Certificate"))
driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()");
#endregion
评论
这不是关于IE9的问题,不是关于IE8的问题吗?
–corsiKa♦
13年7月2日在4:46
应该为两者工作。
– Tedesco
13年7月2日在8:11
#6 楼
是的Rama,是IE8的修复程序。我有一个具有过期证书的应用程序,我需要接受该证书才能继续进行操作。此SSL错误后将引发。现在,我使用以下错误处理方法:
driver.navigate()。to(“ javascript:document.getElementById('overridelink')。click()”);
这样,我就可以同时解决IE8和IE9的此问题。
#7 楼
首先导航到该站点:DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
Webdriver driver = new InternetExplorerDriver(capabilities);
driver.get("your testing site");
driver.navigate().to("javascript:document.getElementById('overridelink').click()");
#8 楼
出于记录,我在IE9 / Python中遇到了类似的问题。那对我有用:if driver.title == 'Certificate Error: Navigation Blocked':
driver.get("javascript:document.getElementById('overridelink').click();")
请注意,上面的代码是:
不尝试查找'override'元素,然后单击链接(失败)
不尝试通过driver.execute()方法执行javascript(也失败)
它将JS偷偷地通过driver.get()方法执行,并检测(使用标题)是否需要完成。
评论
您是否找到了解决方案?我对其他人使用针对IE的watir-webdriver遇到类似的问题。这似乎是一个webdriver问题。由该页面的某些异常引起。