2017-01-06 3 views
0

Ich habe ein WFP-Fenster, das eine Liste zeigt. Die Liste hat Paging, also wenn es eine lange Liste ist, kann ich auf Weiter klicken und die Zeilen auf Seite 2, 3, 4 usw. betrachten.Kann ich eine Bestätigung zum Aktualisieren erzwingen?

Ich habe eine Assert, die das Datum, das in jeder Zeile angezeigt wird, bestätigt. Zuerst aktiviere ich das Datum in der ersten Zeile auf der ersten Seite (was OK funktioniert), dann setze ich das Datum in der ersten Zeile von Seite 2 ein. Die Probleme beginnen, wenn ich die erste Zeile von Seite 2 aktiviere Zeile auf Seite 1. Mein Pseudo-Code ist ...

// Assert Datum auf Seite 1 Zeile 1 ist gültig/* WORKS OK */

// Klicken Sie auf Weiter auf Seite 2./*WORKS bewegen OK */

// assert Datum auf Seite 2 Zeile 1 ist gültig/* PROBLEM HIER */

aus Neugier, änderte ich meine Prüfung, Entfernen des ersten assert und bemerkte, dass die Assertion von Seite 2, Reihe 1 Arbeits ... begann Next

// Klicken Sie auf Seite zu bewegen 2./* OK */

// Assert Datum auf Seite 2 Zeile WORKS 1 ist gültig/* OK */

WORKS Der Code ist also korrekt und kann Seite 2, Zeile 1, aber nur einmal korrekt bestätigen. Bei dem zweiten Assert bleibt das Ergebnis von dem ersten Assert erhalten. Beide Asserts wurden erstellt, indem sie aufgezeichnet wurden. Wenn ich das zweite Assert aufzeichne, verwendet es dieselbe Eigenschaft, die es für das erste Assert verwendet hat. Die Eigenschaft ist schreibgeschützt, daher kann ich keine Möglichkeit finden, sie zu löschen.

Ich möchte beide Behauptungen ordnungsgemäß funktionieren, meine grundlegende Frage ist, wie behaupte ich mehrere Male in der gleichen Liste und bekomme den aktuellen Wert jedes Mal? Ich denke, die Antwort wird kommen, wenn ich herausfinde, wie man die zweite Assert aufzeichnet und entweder die aufgezeichnete Assertion dazu zwingt, nicht dieselbe Eigenschaft zu verwenden, die sie für die erste Assert verwendet hat. Oder es könnte eine Möglichkeit geben, den alten Wert vor my zu spülen zweite Behauptung.

public void Assert_Alerts_TimestampOfTopRowValid_Page1() 
    { 
     #region Variable Declarations 
     WpfText uIItem04012017153411Text = this.UIOptimalMyClientShWindow.UIItemCustom1.UIItemCustom11.UIItem04012017153411Text; 
     #endregion 

     // Verify that the 'DisplayText' property is not null 
     Assert.IsNotNull(uIItem04012017153411Text.DisplayText, "Can\'t assert the timestamp of first alert"); 
    } 

    public void Assert_Alerts_TimestampOfTopRowValid_Page2() 
    { 
     #region Variable Declarations 
     WpfText uIItem04012017153411Text = UIItem04012017153411Text;  
            \\I AM CONCERNED ABOUT WHY THIS IS RECORDED 
            \\WITH THE SAME VARIABLE AS THE LAST ASSERT. 
            \\HOW CAN I FLUSH THE VALUE OF THE VARIABLE 
            \\AND MAKE THE CODED UI TEST ASSERT IT AGAIN 
            \\OR RECORD WITH A DIFFERENT VARIABLE? 
     #endregion 

     // Verify that the 'DisplayText' property is not null 
     Assert.IsNotNull(uIItem04012017153411Text.DisplayText, "Alert Timestamp on page 2 not valid."); 
    } 

Mein Eigentum ist ...

private WpfText mUIItem04012017153411Text; 

    public WpfText UIItem04012017153411Text 
    { 
     get 
     { 
      if ((this.mUIItem04012017153411Text == null)) 
      { 
       this.mUIItem04012017153411Text = new WpfText(this); 
       #region Search Criteria 
       this.mUIItem04012017153411Text.SearchProperties[WpfText.PropertyNames.AutomationId] = "TxtBlockAutoID10"; 
       this.mUIItem04012017153411Text.WindowTitles.Add("MyApp"); 
       #endregion 
      } 
      return this.mUIItem04012017153411Text; 
     } 
    } 

Antwort

4

ich glaube, das Problem im Wert von this.UIOptimalMyClientShWindow.UIItemCustom1.UIItemCustom11.UIItem04012017153411Text ist als zu WpfText uIItem04012017153411Text zugeordnet. Dieses Steuerelement bezieht sich auf das Datumsfeld auf der ersten Seite. Sie können sehen, dass der alte Wert aus dem Test if ((this.mUIItem04012017153411Text == null)) und ähnlichen Tests in den Eigenschaften der anderen Namen in this.UIOptimalMyClientShWindow.UIItemCustom1.UIItemCustom11 verwendet wird.

Die Lösung besteht darin, die Methode Find() der Steuerung aufzurufen, um eine Neubewertung der Suchvorgänge zu erzwingen. Ihre Frage ist sehr ähnlich zu this one und die gleiche Antwort gilt.

+0

Dies funktionierte perfekt, gut gemacht, um einem Neuling zu helfen! – Ewan

Verwandte Themen