2011-10-12 3 views
3

다른 웹 사이트의 SSL 인증서를 사용하여 웹 사이트를 테스트하기 위해 watir-webdriver를 사용하여 IE를 테스트했습니다. (동일한 웹 사이트의 생산 버전)Watir이 IE 보안 경고를 지울 수 없음

내 사이트를 방문 할 때, 나는 Watir과 문서가이 http://wiki.openqa.org/display/WTR/Security+Alerts 에 대한 해결 방법이 있습니다 http://www.zeus.com/sites/default/files/media/warning2.png

(보안 인증서가 불량 때문에)이 보이는 페이지를 얻을 수 my_browser.link (: id, "overridelink")를 클릭하십시오.

루비 콘솔에서 실행하려고하면 오류가 발생합니다.

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> 

누구든지이 문제를 해결하는 방법을 알고 있습니까? 불행하게도 http://watirwebdriver.com/browser-certificates/

, 내가 IE 브라우저에 대해 아무것도 표시되지 않습니다 :

+0

해당 페이지가 기본 브라우저 인스턴스에 표시되거나 새 창을 표시합니까? –

답변

4

자동으로 지금까지 내가 아는 한 Watir과-WebDriver와이를 방지 할 수있는 방법이 없습니다 "나는 당신이 수동으로 신뢰할 수있는 루트에 인증서를 추가 할 필요가 믿는다"고 말했다.

  • 아래로 스크롤하여 선택하고 고급 탭을

    1. 도구 및
    2. 인터넷 옵션을 선택하고 인증서 주소 불일치
    3. 에 대한 경고 취소 :

      이 솔루션은 IE가이 오류에 대해 상관하지 않는다 있는지 확인하는 것입니다

  • 2

    나는이 Watir과 - webdriver 인증서와 함께 작동하는 방법 볼 수있는 오른쪽 페이지라고 생각합니다.

    업데이트 : 알리 스터는 https://twitter.com/#!/alisterscott/status/124047931945922561

    +0

    이것은 내가 사용하는 접근 방식으로 사용자가 프로덕션 사이트에서 인증서가 정품이고 잘못된 인증서 화면을 트리거하지 않는 곳을 사용자가 보게되는 것을 시뮬레이션합니다. 테스트 환경의 루트 인증서에 추가하면 완료됩니다. 또한 프로덕션 환경에서 스크립트를 실행해야하는 경우 작동합니다. –

    1

    내가 사용하는이 솔루션은 '웹 사이트에 계속'탭으로 autoit을 사용하여 웹 사이트에 항상 추가해야하는 비용을 절약합니다.

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

    이 코드는 내 IE10에서 작동하며 "overridelink"를 완벽하게 클릭합니다.

    browser.goto("javascript:document.getElementById('overridelink').click()") 
    
    관련 문제