2013-10-18 2 views
0

IE 9를 사용하여 VS 2010에서 UI 테스트를 만들려고합니다. 그러나 많은 단계를 기록하는 동작을 기록하려고 할 때 실패합니다. 그런 다음 누락 된 단계를 수동으로 코딩하고 사용자 이름과 암호로 로그인 양식을 채우려고하면 숨겨진 컨트롤에 대한 작업을 수행하지 못했다는 예외가 발생합니다.숨겨진 컨트롤 예외에 대한 작업을 수행하지 못했습니다.

UI를 테스트 코드 :

public void Recordedmethod() 
{ 
     BrowserWindow uILogInWindowsInternetWindow = this.UILogInWindowsInternetWindow; 
     HtmlHyperlink uILogInHyperlink = this.UILogInWindowsInternetWindow.UIHomePageDocument.UILogInHyperlink; 
     HtmlEdit uIUsernameEdit = this.UILogInWindowsInternetWindow.UILogInDocument1.UIUsernameEdit; 
     HtmlEdit uIPasswordEdit = this.UILogInWindowsInternetWindow.UILogInDocument1.UIPasswordEdit; 
     #endregion 

     // Go to web page 'http://localhost:15856/WebSite1/' 
     uILogInWindowsInternetWindow.NavigateToUrl(new System.Uri(this.RecordedMethodParams.UILogInWindowsInternetWindowUrl)); 

     // Set flag to allow play back to continue if non-essential actions fail. (For example, if a mouse hover action fails.) 
     Playback.PlaybackSettings.ContinueOnError = true; 

     // Mouse hover 'Log In' link at (1, 1) 
     Mouse.Click(uILogInHyperlink); 

     // Reset flag to ensure that play back stops if there is an error. 
     Playback.PlaybackSettings.ContinueOnError = false; 

     // Type 'test' in 'Username:' text box 
     uIUsernameEdit.Text = this.RecordedMethodParams.UIUsernameEditText; 

     // The following element is no longer available: IE web control; Process Id [6320], window handle [3168166] 

     // Type '********' in 'Password:' text box 
     uIPasswordEdit.Password = this.RecordedMethodParams.UIPasswordEditPassword; 

     // The following element is no longer available: IE web control; Process Id [6320], window handle [3168166] 
} 
+1

이 보안 패치 버그가 문제 일 수 있습니까? http://stackoverflow.com/questions/18900119/cannot-perform-click-on-the-hidden-control-visual-studio-2012-only – yonitdm

+0

@yonitdm VS 2012에 대한 것입니다. –

+0

@yonitdm 분명히 여기 있습니다. 2012 년 쟁점 일뿐 아니라 링크 덕분에 답으로 추가하면 투표 할 것입니다. –

답변

1

이 9 월에 출시 된 인터넷 익스플로러 패치에 연결된 문제입니다.

KB2870699

이 VS2010와 VS2012에 영향을 미친다.

Microsoft는 VS2012의 문제를 해결하는 패치를 출시했습니다.이 패치로 인해 문제가 해결되었습니다.

http://blogs.msdn.com/b/visualstudioalm/archive/2013/09/17/coded-ui-mtm-issues-on-internet-explorer-with-kb2870699.aspx

현재 VS2010 유일한 해결책은 패치 (KB2870699)를 제거하는 것; 그러나 어떤 종류의 보안 패치와 마찬가지로 상황을 고려할 때 안전하게 수행 할 수 있는지 여부를 신중하게 고려해야합니다.

편집 : 이것은 내가 처리해야 할 재미있는 버그가 아니 었습니다. 방금 VS2010에서 VS2012로 업그레이드했는데 갑자기 이전에 작동 한 CodedUI 테스트 중 아무 것도 작동하지 않는 것으로 나타났습니다. 나는 그것이 VS2012로 문제가되었다고 생각하고, 더 나은 부분을 위해 벽에 머리를 부딪 히고 패치로 문제가 있다는 것을 알았습니다. 패치가 내 시스템에 설치된 것과 동시에 2012 년으로 업그레이드 한 것은 제 행운이었습니다. 좋은 시간!

+1

yeh 그 진짜 고통을 다루는, 처음에는 자동 코드 생성 문제로 생각했기 때문에 수 시간 동안 수동으로 코드를 작성해 보았지만 여전히 실패했습니다. –

0

코딩 된 UI 테스트와 동일한 문제가있었습니다. VS-2012의 문제입니다. 모든 업데이트 (설치/제거)를 시도했지만 아무 것도 작동하지 않았습니다. VS-2013 Ultimate을 사용해 보았습니다.

-1

테스트 처리가 실패하지 않은 동안 예외 처리를 사용하여 오류를 캡처 할 수 있습니다.

클릭 동작을 수행 할 때 컨트롤이 숨겨져 있기 때문에 테스트에 실패했습니다.

try 
{ 
    //your code goes here 
} 
catch(FailedToPerformActionOnHiddenControlException e) 
{ 
    Console.WriteLine(e.Message); 
} 
관련 문제