我一直在使用Selenium RC进行功能测试。
当测试进入我们网站的登录页面并切换到 HTTPS 时,我一直遇到问题。
我不断更改设置但是,每个浏览器都会失去工作。
使用** iehta *和** chrome *作为我的浏览器和信任所有SSL证书& 确保清理会话设置我可以让FF3登录我们的网站,但IE会抛出“此网站的安全证书存在问题。”错误。 (我已安装证书)
为什么不信任所有证书都可以与IE一起使用?
答案 0 :(得分:6)
有两个步骤。一种是使用“-trustAllSSLCertificates”选项启动服务器,另一种是将浏览器配置为使用Selenium服务器作为其代理。 * iexploreproxy和* firefoxproxy为您处理代理设置。如果使用“-trustAllSSLCertificates”标志,Selenium(从2.0a5开始)将自动配置* firefox以使用Selenium服务器作为代理。使用HTA的iexplore永远不会被Selenium配置为使用代理。因此,您需要先处理或通过自定义启动器处理。
以下文章中的更多详细信息:http://nirvdrum.com/2010/04/13/how-to-accept-self-signed-ssl-certificates-in-selenium.html
答案 1 :(得分:1)
我已设法通过设置-trustAllSSLCertificates来实现此功能 并在FireFox中创建默认配置文件。
到目前为止,我可以愉快地使用任一浏览器,而不用担心出现不受信任的证书错误。
值得注意的是,我告诉selenium使用的浏览器只是* chrome和* iehta。
答案 2 :(得分:1)
我没有在最新版本的Selenium RC中看到此错误,即2.31.0
。如果您正在使用:
RemoteControlConfiguration rc= new RemoteControlConfiguration();
rc.trustAllSSLCertificates();
SeleniumServer server;
server=new SeleniumServer(rc);
答案 3 :(得分:0)
由于一些随机的原因,IE现在看起来很好,所以我坚持使用配置,并尝试对FF问题进行排序。
答案 4 :(得分:0)
这个答案没有直接回答“为什么不信任所有证书都可以与IE一起使用?”,但它确实提供了一个问题的答案,这个问题很可能引起了这里提出的问题。即对于任何将Selenium作为Windows服务运行并发现它不信任其自签名证书的人。
问题
IE不信任root并发布自签名权限的证书,因此呈现请求用户决定他/她是否想要继续并信任该站点的页面。这可以防止任何硒测试进展。
解决方案
该解决方案在概念上相对简单且合乎逻辑,根证书和颁发证书必须作为可信证书安装在计算机上。
但是,如果服务在系统帐户下运行,则复杂性在于使运行Selenium RC的Windows服务信任证书。要纠正此问题,需要执行以下步骤。
将证书添加到本地计算机的“受信任的根证书颁发机构”商店
管理员是完成此过程所需的最低组成员资格。
将证书添加到本地计算机的“受信任的根证书颁发机构”存储
将证书添加到本地计算机的中间证书颁发机构商店
答案 5 :(得分:0)
IE将cert错误显示为普通的html页面。既然如此,您可以找到该元素并在其上执行.click()作为临时解决方法。 :)你可以创建一个cert帮助程序类来执行它并只执行cert.acceptCert(driver);