3

watir-webdriver を使用して IE を駆動し、別の Web サイトの SSL 証明書を使用して Web サイトをテストしています。(同サイトの製品版)

サイトにアクセスすると、このようなページが表示されます (セキュリティ証明書が悪いため) http://www.zeus.com/sites/default/files/media/warning2.png

watir のドキュメントには、このhttp://wiki.openqa.org/display/WTR/Security+Alerts my_browser.link(:id, "overridelink").clickの回避策があります。

これを Ruby コンソールで実行しようとすると、エラーが発生します。

irb(main):050:0> b.link(:id, "overridelink").click
Selenium::WebDriver::Error::UnexpectedJavascriptError: Unable to find element with xpath == .//a[@id='overridelink']
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/response.rb:45:in `assert_ok'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/common.rb:54:in `new'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/common.rb:54:in `create_response'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/http/common.rb:35:in `call'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/bridge.rb:410:in `raw_execute'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/bridge.rb:388:in `execute'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/remote/bridge.rb:356:in `find_element_by'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/selenium-webdriver-2.8.0/lib/selenium/webdriver/common/search_context.rb:41:in `find_element'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/locators/element_locator.rb:86:in `find_first_by_multiple'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/locators/element_locator.rb:33:in `locate'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:263:in `locate'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:245:in `assert_exists'
        from C:/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.3.5/lib/watir-webdriver/elements/element.rb:65:in `click'
        from (irb):50
        from :0irb(main):051:0>

エラー ページの html を見ると、続行リンクが確実に表示されています。

<tr>
<td >&nbsp;</td>
<td id="continueToSiteAlign" align="left" valign="middle">
    <h4 id="continueToSite">
        <img src="red_shield.png" ID="ImgOverride" border="0" alt="Not recommended icon" class="actionIcon"><A href='' ID="overridelink" NAME="overridelink" >Continue to this website (not recommended).</A>
    </h4>
    </td>
</tr>

この問題を回避する方法を知っている人はいますか?

4

4 に答える 4

4

私がWatir-WebDriverで知っている限り、これを自動的に回避する方法はありません。

解決策は、IEがこのエラーを気にしないようにすることです。

  1. ツールとインターネットオプションの選択
  2. [詳細設定]タブを選択します
  3. 下にスクロールして、[証明書アドレスの不一致について警告する]チェックボックスをオフにします
于 2011-10-12T10:39:25.647 に答える
2

これは、watir-webdriver が証明書でどのように機能するかを確認するための適切なページだと思います: http://watirwebdriver.com/browser-certificates/

残念ながら、IE ブラウザについては何も表示されません。

更新: アリスターは「証明書を信頼されたルートに手動で追加する必要があると思います」と述べましたhttps://twitter.com/#!/alisterscott/status/124047931945922561

于 2011-10-12T08:34:23.513 に答える
1

私が使用するこれに対する解決策は、autoitを使用して「ウェブサイトに進む」にタブで移動することです。これにより、常にウェブサイトに追加する必要がなくなります

    autoit=WIN32OLE.new('AutoItX3.Control')
    i=1
    while i < 11 
        autoit.Send("{Tab}")
        i+=1
    end

    autoit.Send("{Enter}")
于 2012-04-20T15:10:40.597 に答える
0

このコードは私のIE10で動作し、「overridelink」を完全にクリックします。

browser.goto("javascript:document.getElementById('overridelink').click()")
于 2014-01-22T06:03:45.687 に答える