2011-10-10 5 views
22

私は、FirefoxとInternet Explorer 9のためにいくつかのセレン2 webdriverをテストケースを持って、私はIE9(Windows 7の64ビット版)にHTTPSのURLにアクセスすると、私はこのウェブサイトのセキュリティ証明書に問題があります」取得"この時点でテストは中断し、最終的には失敗します。私は試しました: セレン2 webdriverをとIE 9セキュリティ証明書の

  • Seleniumが「このウェブサイトを続ける(推奨しません)」をクリックするリンク。このエラーページは通常のページではありませんので、これを行うことはできません。 JavaScriptと同じですが、実行されません。
  • 証明書エラーページが表示されないようにするレジストリキー
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312
    を追加しようとしましたが動作しませんでした。おそらく私はIE9でWindows 7を使っているからだろう。
  • thisアドバイスに続いて、私はbrowsermobプロキシを使用してみましたが、そこにはほとんどのドキュメントはそこだと私はそれを動作しませんでした。
  • 最後に、自分のPCに管理者権限を持っていません。グループポリシーへのアクセス権がありません。 Selenium 2 WebdriverはFirefox上でうまく動作します。私はすべてのセキュリティゾーンをIEのインターネットオプションで有効にして、他のURL(http)でテストを実行すると問題はありません。

    誰でもこの問題を解決しましたか?誰も今この問題を克服するためにbrowsermobプロキシ(または他のプロキシ)を効果的に使用するのに暑いですか?

    おかげで、 ダモ

    +1

    あなたが言及した機能キーは、HTTPS証明書の受け入れとは関係ありませんでした。最善の方法は、ユーザーの信頼ストア(certmgr.msc)に証明書をインストールすることです。ルートが信頼されていないというエラーがあると仮定します。 – EricLaw

    答えて

    2

    これは、過去に私のために働いていた、それを試してみる、

    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);  
    Webdriver driver = new InternetExplorerDriver(capabilities); 
    
    +1

    それを試しましたが、運がありません。 IE9でこれを試しましたか? –

    +0

    私はIE9でそれを試していません。非管理者特権でIEにセキュリティ証明書をインストールできるかどうかそれともあなたが好きではないものですか? – nilesh

    +0

    私はw7、ie8でそれを試しても動作しません。 – hithwen

    0

    この内の任意のprogess? 私は、この機能のことをやろうとしている...しかし、私はルビーを使用してどのように行うのか分からない:(

    クロムでは、あなたがスイッチを使用することができるので、それは簡単です:たぶん

    nav=Selenium::WebDriver.for(:chrome, :switches => %w[--ignore-certificate-errors -]) 
    

    私がSQAボード上の答え見つけ

    26

    わかりました、私はちょうどそれがC#を使用してIE9の下で働いてましたし、次のコード:

    IWebDriver driver = new InternetExplorerDriver(); 
    driver.Url(YOUR_URL); 
    driver.Navigate().GoToUrl("javascript:document.getElementById('overridelink').click()"); 
    

    そして今、それが意図したページに移動します。 Javaの場合、それは同じくらい簡単です:

    WebDriver driver = new InternetExplorerDriver(); 
    driver.get(YOUR_URL); 
    driver.get("javascript:document.getElementById('overridelink').click();"); 
    
    +0

    これは魅力的に機能しました!ありがとう! – JacekM

    +0

    ありがとうございました。それは本当に多くの助けになりました。 – GirishB

    +0

    Worked ....クールな人...事はこれです...人々はすべての場所でURコードをコピーします:D –

    0

    このreplyに記載あなたがIEのドライバを使用した場合に非常に簡単な解決策は、そこにあります。追加された利点は、サイトの所有者である必要はありませんし、私たちは、次のコードを使用することができますbrowsermobまたはレジストリやその他の低レベルの技術

    0

    でもつれする必要がないことです。

    wait =new WebDriverWait(webdriver, 10); 
    
    webdriver.get(url); 
    WebElement ele =wait.until(ExpectedConditions.elementToBeClickable(
           webdriver.findElement(By.linkText("Continue to this website (not 
           recommended).")))); 
    ele.click(); 
    
    4

    セレン - Pythonバインディングを使用する:WebDriverは、証明書エラーページにすぐに移動していないため、

    #region SSL workaround for IE 
    if "Certificate Error" in driver.title: 
        driver.get("javascript:document.getElementById('overridelink').click();") 
    
    0

    他の回答が正しい考えを持っているが、実際には失敗します。正しい実装はちょっと待つ必要があります。

    new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("Certificate")); 
    
    
    driver.navigate().to("javascript:document.getElementById('overridelink').click()"); 
    
    関連する問題