【问题标题】:Selenium Testing HTTPs Trust All certificates working for FF but not IESelenium 测试 HTTPs 信任所有适用于 FF 但不适用于 IE 的证书
【发布时间】:2010-08-26 13:59:05
【问题描述】:

我一直在使用 Selenium RC 进行功能测试。

当测试进入我们网站的登录页面并切换到 HTTPS 时,我一直遇到问题。

我一直在更改设置,但是每个浏览器都无法正常工作。

使用 **iehta* 和 **chrome* 作为我的浏览器和 Trust All SSL CertificatesEnsure Clean Session 设置我可以让 FF3 登录到我们的网站但是,IE 会抛出 “此网站的安全证书有问题。” 错误。 (我已经安装了证书)

为什么 Trust All 证书不适用于 IE?

【问题讨论】:

标签: selenium selenium-rc


【解决方案1】:

有两个步骤。一种是使用“-trustAllSSLCertificates”选项启动服务器,另一种是将浏览器配置为使用 Selenium 服务器作为其代理。 *iexploreproxy 和 *firefoxproxy 为您处理代理设置。如果使用“-trustAllSSLCertificates”标志,Selenium(从 2.0a5 开始)将自动配置 *firefox 以使用 Selenium 服务器作为代理。 *iexplore,使用 HTA,从未被 Selenium 配置为使用代理。因此,您需要先验或通过自定义启动器来处理。

更多详情请看以下文章:http://nirvdrum.com/2010/04/13/how-to-accept-self-signed-ssl-certificates-in-selenium.html

【讨论】:

  • 我修复了链接。谢谢。
【解决方案2】:

我已经设法通过设置 -trustAllSSLCertificates 来让它工作 并在 FireFox 中创建默认配置文件。

到目前为止,我可以愉快地使用任一浏览器,而不必担心出现不受信任的证书错误。

值得注意的是,我告诉 selenium 使用的浏览器只是 *chrome 和 *iehta。

【讨论】:

    【解决方案3】:

    我没有看到最新版本的 Selenium RC 出现此错误,即2.31.0。如果您正在使用:

    RemoteControlConfiguration rc= new RemoteControlConfiguration();
        rc.trustAllSSLCertificates();
        SeleniumServer server;
        server=new SeleniumServer(rc);
    

    【讨论】:

      【解决方案4】:

      由于某些随机原因,现在 IE 看​​起来不错,所以我坚持按原样配置并尝试对 FF 问题进行排序。

      【讨论】:

        【解决方案5】:

        此答案没有直接回答“为什么不信任所有证书都可以与 IE 一起使用?”,但它确实提供了对可能引发此处提出的问题的问题的答案.即,对于将 Selenium 作为 Windows 服务运行并发现它不信任他们的自签名证书的任何人。

        问题

        IE 不信任自签名机构的根和颁发证书,因此会显示一个页面,要求用户决定他/她是否要继续并信任该站点。这会阻止任何硒测试的进行。

        解决方案

        该解决方案在概念上相对简单且合乎逻辑,根证书和颁发证书必须作为受信任的证书安装在计算机上。

        但是,如果服务在系统帐户下运行,复杂性在于让运行 Selenium RC 的 Windows 服务信任证书。要纠正此问题,需要执行以下步骤。

        1. 将根证书安装为计算机范围内受信任的证书颁发机构。
        2. 将颁发证书安装为计算机范围的中间证书颁发机构

        将证书添加到本地计算机的受信任的根证书颁发机构存储区

        Administrators 是完成此过程所需的最低组成员身份。

        将证书添加到本地计算机的受信任根证书颁发机构存储中

        1. 单击“开始”,单击“开始搜索”,键入 mmc,然后按 Enter。
        2. 在“文件”菜单上,单击“添加/删除管理单元”。
        3. 在可用的管理单元下,单击证书,然后单击添加。
        4. 在此管理单元将始终管理证书下,单击计算机帐户,然后单击下一步。
        5. 单击本地计算机,然后单击完成。
        6. 如果您没有要添加到控制台的更多管理单元,请单击“确定”。
        7. 在控制台树中,双击证书。
        8. 右键单击受信任的根证书颁发机构存储。
        9. 单击导入以导入证书并按照证书导入向导中的步骤操作。

        将证书添加到本地计算机的中间证书颁发机构存储区

        1. 在控制台树中,双击证书。
        2. 右键单击中间证书颁发机构商店。
        3. 单击导入以导入证书并按照证书导入向导中的步骤操作。

        【讨论】:

          【解决方案6】:

          IE 将证书错误显示为普通的 html 页面。既然这样做了,您可以找到该元素并对其执行 .click() 作为临时解决方法。 :) 您可以创建一个 cert 帮助程序类来执行此操作,然后执行 cert.acceptCert(driver);

          【讨论】:

            猜你喜欢
            • 2015-08-11
            • 2013-07-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多