2017-01-06 8 views
0

У меня есть окно wfp, которое показывает список. В списке есть подкачки, поэтому, если это длинный список, я могу нажать «Далее» и посмотреть строки на стр. 2, 3, 4 и т. Д.Могу ли я принудительно обновить Assert?

У меня есть Assert, который устанавливает дату, указанную в каждой строке. Сначала я утверждаю дату в первой строке на первой странице (которая работает нормально), затем я утверждаю дату в первой строке страницы 2. Проблемы начинаются, когда я утверждаю первую строку страницы 2, она фактически утверждает первый строка на странице 1. Мой псевдо-код ...

// дата Утверждай на странице 1 ряд 1 действует/* WORKS OK */

// Нажмите кнопку Далее, чтобы перейти на страницу 2./*WORKS OK */

// дата Утверждай на странице 2 строки 1 справедлива/* ПРОБЛЕМА ЗДЕСЬ */

из любопытства, я изменил свое испытание, удаление первого Assert и заметил, что утверждают страницы 2, строка 1 начал работать ...

// Нажмите кнопку Далее, чтобы перейти к странице 2./* WORKS OK */

// дата Assert на странице 2 строки 1 действует/* WORKS OK */

Таким образом, код верен, и он может утверждать страницу 2, строка 1, но он может утверждать только один раз. По второму утверждению он удерживает результат от первого утверждения. Оба Asserts были созданы путем их записи. Когда я записываю второе утверждение, он использует то же свойство, что и при первом утверждении. Свойство читается только, поэтому я не могу найти способ его вымыть.

Я хочу, чтобы оба утверждения работали правильно, мой основной вопрос: как я могу несколько раз указывать в одном списке и получать последнее значение каждый раз? Я думаю, что ответ наступит, когда я выработаю, как записать второе утверждение, и либо заставить зарегистрированное утверждение не использовать одно и то же свойство, которое оно использовало для первого утверждения ИЛИ, иначе может быть способ сбросить старое значение до моего второе утверждение.

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."); 
    } 

Моя Собственность ...

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; 
     } 
    } 

ответ

4

Я думаю, что проблема в значении this.UIOptimalMyClientShWindow.UIItemCustom1.UIItemCustom11.UIItem04012017153411Text, как назначен WpfText uIItem04012017153411Text. Этот элемент управления относится к полю даты на первой странице. Вы можете видеть, что его старое значение будет использоваться из теста if ((this.mUIItem04012017153411Text == null)) и аналогичных тестов в свойствах других имен в this.UIOptimalMyClientShWindow.UIItemCustom1.UIItemCustom11.

Решение должно вызвать метод управления Find() для принудительной повторной оценки результатов поиска. Ваш вопрос очень похож на this one и тот же ответ.

+0

Это работало отлично, хорошо сделано для того, чтобы помочь новичкам! – Ewan