2016-09-22 9 views
0

Visual Studio 코딩 된 UI 테스트를 실행할 때 발견 된 문제에 미쳐 가고 있습니다. 시나리오는 다음과 같습니다. 선택한 값을 설정 페이지에서 페이지 코딩 된 UI 테스트 - 반환하지 않는 UI 속성 설정 (무한히 매달려)

  • 에 응용 프로그램
  • 이동에

    • 로그인 : 나는 웹 응용 프로그램에서 다음 단계를 수행 코딩 된 UI 테스트 (2011의 Microsoft Dynamics CRM)를 기록 html combobox의

    테스트는 문제없이 모든 단계를 수행 할 수 있으며 심지어 콤보 상자의 값을 선택합니다. 웹 응용 프로그램에는 선택한 항목이 변경 될 때 실행되는 자바 스크립트가 있습니다. 값 중 하나가 선택되면 경고 메시지가 사용자에게 표시되고 응용 프로그램이 선택한 항목을 기본값으로 설정합니다! 이런

    자바 스크립트 코드를 보면 :

    아래와
    switch (Xrm.Page.getAttribute("status").getValue()) { 
        case 3: //Authorised 
         alert("Please use the method XPTO to update the record status to Authorised!"); 
         Xrm.Page.getAttribute("status").setValue(1); 
         Xrm.Page.getControl("tatus").setFocus(true); 
         return false; 
    

    콤보의 변화를 수행하는 UI 시험 방법이므로 :

    /// <summary> 
        /// Select a value in the Status dropdown box 
        /// </summary> 
        public void SelectStatus() 
        { 
         #region Variable Declarations 
         HtmlComboBox uIStatusComboBox = this.UIHttpsappWindow200.UIModuleUITEDocument5.UIWorkplaceDashboardsFrame.UIModuleUITEDocument.UIStatusComboBox; 
    
         // Select 'Authorised' in 'Status' combo box 
         uIStatusComboBox.SelectedItem = this.SelectStatus_SPParams.UIStatusComboBoxSelectedItem; 
    
        } 
    

    시험 방법은 값을 변경할 수있다 콤보 박스에서 경고 메시지가 사용자에게 표시됩니다. 그러나 코드 uIStatusComboBox.SelectedItem = this.SelectStatus_SPParams.UIStatusComboBoxSelectedItem; 의이 부분은 결코 반환되지 않으며 테스트는 타임 아웃 될 때까지 거기에 매달립니다!

    나는이 문제를 어떻게 해결할 지 아이디어가 없다! 아마 우리에게 경고가 사용자에게 표시 된 후에 실행되는 자바 스크립트 코드가 있다는 사실에 문제가있을 수 있다고 생각했습니다. JS를 변경하여 경고 메시지가 마지막으로 표시되지만 도움이되지 않았습니다!

    경고 메시지에서 확인을 클릭하면 테스트 합격!

    다른 테스트를 트리거하지 않는 다른 값을 선택하면 테스트도 통과됩니다!

    누구든지이 문제에 대해 알고 있습니까?


    편집 1 : 나는 다른 일을 발견

    을, 나는 브라우저에 JS 스크립트를 보낼 BrowserWindow 객체를 사용할 수 있습니다. 경고 메시지를 만들려고하면 경고 메시지에서 확인 버튼을 클릭 할 때까지 통화가 차단됩니다.

    BrowserWindow bw = BrowserWindow.Locate("My window"); 
    bw.ExecuteScript("alert('This is just a simple alert.');"); 
    

    ExecuteScript 문은 [확인] 단추를 클릭 할 때까지 차단됩니다. 이것은 매우 이상하게 보입니다!

  • 답변

    0

    해결 방법을 찾았습니다. 나는이 문제를 좀 도와 수있는 것을 찾기 위해 인터넷 검색을하고 있었고, 난에 유래 Coded ui test - Select an item from a combobox without using mouse coordinates

    에이 질문을 찾는 결국 나는 HtmlComboBox 요소의 "selectedItem가"속성을 사용하지 않고 드롭 다운에서 같은 항목을 선택하려고합니다.내 경우에는

    public void SelectStatus_SP(string SelectedItem) 
        { 
         #region Variable Declarations 
         HtmlComboBox uIStatusComboBox = this.UIHttpsappWindow200.UIpopupUITEDocument5.UIWorkplaceDashboardsFrame.UIpopupUITEDocument.UIStatusComboBox; 
         #endregion 
    
         Mouse.Click(uIStatusComboBox); 
         Keyboard.SendKeys(uIStatusComboBox, "{Down}{Down}{Enter}", ModifierKeys.None); 
        } 
    

    : 는 내가 원하는 요소를 선택하기 위해 처음에는 드롭 다운을 클릭 한 후 나는 아래 키를 사용하고 Enter 키를 드롭 다운 상자에서 요소를 선택 키보드를 사용하려고 내가 선택한 요소는 3 번째 요소이므로 2 번 아래로 이동 한 다음 선택하려는 요소에 대해 Enter 키를 누릅니다.

    이 해결 방법은 요소가 위치를 변경하면 worng one을 선택하기 때문에 좋지 않습니다! 그러나 이것이 내가 그 부분에 재고가없는 시험을 위해 얻은 유일한 방법이었습니다!

    누군가 비슷한 문제가 있는지 궁금합니다. 나에게 이것은 Coded UI Test 엔진의 버그처럼 보이기 때문에 경보가 닫히지 않은 상태에서 테스트가 저장되도록 scence를 만들지 않는다!