2012-06-14 1 views
3

저는 이틀 동안이 문제에 직면했습니다.Selenium Webdriver + Java를 사용하여 IE8에서 자체 서명 된 인증서 오류를 처리하는 방법

시나리오 :

테스트 할 필요가있는 웹 사이트는 자체 서명 된 인증서를 가지고있다. 그래서 윈도우 XP_의 Internet Explorer (8

는 "이 웹 사이트에서 제시 한 보안 인증서는 신뢰할 수있는 인증 기관에서 발급되지 않았습니다. 다른 웹 사이트의 주소에 대해 발행 된이 웹 사이트에서 제시 한 보안 인증서입니다."이 표시

지금이 내가

  1. 수동으로 추가없이 사용하려면 다음과 같은 조치를했다 IE8 및 자체 서명 인증서의 경우 완벽하게 자연/신뢰할 수있는 루트 인증서를 설치 IE의 인증서. 그러나 목록에 표시되지는 않지만 다른 모든 탭, 즉 신뢰할 수있는 루트 게시자, 중간 게시자 권한, 기타 사용자에게 성공적으로 추가됩니다.
  2. 동일한 인증서가 "서버"에서 문제없이 Firefox에 추가되고 예상대로 작동합니다. 이것이 내가 이미 설치 cybervillans 인증서가
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
              capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
    

    를 사용하여 시도 작동하지 않을 때 그
  3. 나는 다음과 같은 코드를 사용하여 시도

    그러나 사람은 셀레늄

    Proxy proxy = new Proxy(); 
    proxy.setProxyType(ProxyType.MANUAL); 
    Proxy.setSslProxy("trustAllSSLCertificates"); 
    DesiredCapabilities capabilities1 = DesiredCapabilities.internetExplorer(); 
    capabilities1.setCapability(CapabilityType.PROXY, proxy); 
    

근무 .

  1. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_ERROR_PAGE_BYPASS_ZONE_CHECK_FOR_HTTPS_KB954312 나는 win7을 잘 알고 있습니다.

5. 나는 심지어 발급 된 권한으로 URL을 변경하려고했지만 심지어 문제가 지속됩니다.

이제 대안이 없습니다. 아무도 내가 어떻게 진행할 수 있는지 나에게 지적 할 수 있습니까? IE8에 영원히 붙어있는 것 같습니다.

저는이 사이트뿐만 아니라 Google에서도 많은 것을 검색했습니다. 그러나 내 문제에 대한 해결책을 찾지 못했습니다.

+0

당신이 IEDriverServer를 사용하고 있습니까? –

+0

@ A.J InternetExplorer 웹 드라이버를 사용하고 있습니다. 예. 그 안에 IEdriverserver –

답변

0

우리 웹 사이트의 dev/test 버전에서 셀렌을 사용할 때 잘못된 인증서에 대한 IE 화면이 계속 나타납니다. 다음을 전달하려면 IWebDriver 인스턴스로

driver.Navigate를 다음을 보내() GoToUrl ("자바 스크립트 :. document.getElementById를 ('overridelink')) (클릭").

을 화면을 당신에게 ' 재검토가 잘못된 인증서 화면과 조금 다를 수 있으므로 getElementById 선택기를 앵커의 ID와 일치하도록 조정하십시오.나는 로버트처럼 사용

+0

나는 그 접근법을 안다. 내 테스트 팩이 크로스 브라우저 호환이되어야하므로 필자도 FF 용으로 작동해야한다. 이제 신뢰할 수있는 소스에 넣으면 Trust 인증서가 제대로 작동하지만 스크립트에이 코드를 넣으면 FF (또는 그 목적으로는 크롬)가 실패합니다> 지금 당장은 내 관심사입니다. –

+0

각 브라우저는 인증서 문제를 다르게 처리합니다. ChromeDriver를 사용할 때 --ignore-certificate-errors 인수를 전달합니다. IE는 그렇게 할 수 없기 때문에 양식을 전달할 방법이 필요합니다. FF에 대한 Dunno, 나는 그 브라우저를 자주 사용하여 테스트하지 않습니다. 또한 IWebDriver 주위에 파사드를 포장하여 드라이버 구현마다 사용자 정의 할 수 있도록 SSL 인증서를 무효화 할 수 있습니다. –

0

는 다음과 같이 썼다 :

if (driver instanceof InternetExplorerDriver) { 
     driver.navigate().to("javascript:document.getElementById('overridelink').click()"); 
    } 
관련 문제