3

私は文字通りこの問題に2日間立ち往生しています。

シナリオ:

テストが必要な Web サイトには、自己署名証明書があります。したがって、Internet Explorer (Windows XP では 8_ が表示されます)

「この Web サイトによって提示されたセキュリティ証明書は、信頼できる認証局によって発行されたものではありません。この Web サイトによって提示されたセキュリティ証明書は、別の Web サイトのアドレスに対して発行されたものです。」

これはIE8と自己署名証明書の場合は完全に自然なので、次の手段を講じましたが役に立ちませんでした

  1. 証明書を信頼されたルート証明書として IE に手動で追加/インストールしました。ただし、リストには表示されませんが、他のすべてのタブ、つまり信頼されたルート発行者、中間発行者機関、その他の人に正常に追加されます。
  2. 同じ証明書が「サーバー」の下で問題なくFirefoxに追加され、期待どおりに機能します。
  3. 次のコードを使用してみましたが、そのうちの1つはセレンで機能しました

    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); 

Cyber​​villans 証明書は既にインストールされています。

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312メソッドを試してみました が、それは win7 用であることを十分に認識しています。

5.URLを発行された機関に変更しようとしましたが、それでも問題は解決しません.

そして今、私は代替案がないことに行き詰まっています。どうすれば進められるか教えてもらえますか?私は永遠にIE8にこだわっているようです。

このサイトだけでなく、Google でもよく検索しました。しかし、私の問題の解決策を見つけることができませんでした。

4

3 に答える 3

0

Robert が書いたように、私はそれを次のように使用します。

 if (driver instanceof InternetExplorerDriver) {
        driver.navigate().to("javascript:document.getElementById('overridelink').click()");
    }
于 2013-10-01T16:51:31.130 に答える
0

Web サイトの開発/テスト バージョンで Selenium を使用すると、無効な証明書の IE 画面が常に表示されます。これらを渡すには、以下を IWebDriver インスタンスに送信します

driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()")

表示されている画面は、不正な証明書の画面とは少し異なる場合があるため、getElementById セレクターを微調整して、アンカーの ID と一致させてください。

于 2012-06-20T23:51:29.020 に答える
-1

この変更により、IE のすべての証明書エラーが永続的に受け入れられますが、それでも洗練されたソリューション: https://stackoverflow.com/a/7738795/2546759

于 2014-04-10T06:39:35.867 に答える