2010-08-27 3 views
0

Это мой код окно приложения для ListView: -Unbale к идентичности WinForm ListView подразделов в кодированный UI тест VSTS 2010

// Create three items and three sets of subitems for each item. 
     ListViewItem item1 = new ListViewItem("item1", 0); 
     item1.SubItems.Add("1"); 
     item1.SubItems.Add("2"); 
     item1.SubItems.Add("3"); 
     ListViewItem item2 = new ListViewItem("item2", 1); 
     item2.SubItems.Add("4"); 
     item2.SubItems.Add("5"); 
     item2.SubItems.Add("6"); 
     ListViewItem item3 = new ListViewItem("item3", 0); 
     // Place a check mark next to the item. 
     item3.Checked = true; 
     item3.SubItems.Add("7"); 
     item3.SubItems.Add("8"); 
     item3.SubItems.Add("9"); 

     // Create columns for the items and subitems. 
     // Width of -2 indicates auto-size. 
     listView1.Columns.Add("Item Column", 100, HorizontalAlignment.Left); 
     listView1.Columns.Add("Column 2", 100, HorizontalAlignment.Left); 
     listView1.Columns.Add("Column 3", 100, HorizontalAlignment.Left); 
     listView1.Columns.Add("Column 4", 100, HorizontalAlignment.Center); 

     //Add the items to the ListView. 
     listView1.Items.AddRange(new ListViewItem[] { item1, item2, item3 }); 

Тогда я добавить элемент управления lisview в тесте Coded UI: -

В закодированы тест пользовательского интерфейса я использовал ниже код

WinList wkList = this.UIForm1Window.UIListView1Window.UIListView1List; 

      string[] strVal = CommonExtensions.GetValuesOfControls(wkList.Items); 

      foreach(WinControl control in this.UIForm1Window.UIListView1Window.UIListView1List.Items) 
      { 

       int count = control.GetChildren().Count; 
       object objVal = CommonExtensions.GetValue(control); 
       WinListItem lstItem = (WinListItem)objVal; 
      } 

in the "strVal " variable gives only values of first column not the subitems. 

in add watch window i get below mentioned value:- 

strVal[0] = "item1" 
strVal[1] = "item2" 
strVal[2] = "item3" 

Я также использовал http://blogs.msdn.com/b/gautamg/archive/2010/02/19/useful-set-of-utility-functions-for-coded-ui-test.aspx?CommentPosted=true#commentmessage

WinListItem listItem = new WinListItem(control); 
string[] strSubItems = WinExtensions.GetColumnValues(listItem); 

В приведенном выше заявлении я получаю недопустимый вывод об Io, в котором говорится: «Управляемый элемент не является элементом управления представлением списка. Эта операция действительна только для управления Просмотр списка элементов.»

Пожалуйста, предложите любую другую альтернативу?.

+1

похоже, вы просто в надежде, что какой-то случайный код, который вы загрузили из Интернета будет делать свою работу, что редко работает на практике просто избавиться от него и написать свой собственный * * код. –

ответ

0

почему бы не попробовать изменить winlistcontrol к регулярным DDL или что-то подобное?

0

Я обычно использую то вроде этого :..

WinList list; 

UITestControlCollection columns = websitesList.Columns; // Get Columns names 

// Get values 
foreach (WinControl item in list.Items) 
    { 
     WinListItem listItem = new WinListItem(item); 
     string[] subItems = WinExtensions.GetColumnValues(listItem); // So you get value = subitem[i] in column[i] 
    } 
Смежные вопросы