C#-使用teststack white获取listview列表项的子项

C#-使用teststack white获取listview列表项的子项,c#,white-framework,C#,White Framework,例如,我有一个LISTVIEW 学生名单: [ID] [NAME ] [AGE ][SCHOOL ] -> Header 1 Harry Potter 13 Hogwarts 2 Draco Malfoy 13 Hogwarts 此列表视图来自第三方应用程序,我没有源代码 我需要的是获取完整的行,例如: 1哈利波特13霍格沃茨 我使用inspect获取ID。我正在使用teststack 这是我尝试过的代码: var li

例如,我有一个LISTVIEW

学生名单:

[ID] [NAME        ] [AGE   ][SCHOOL  ] -> Header
1     Harry Potter       13   Hogwarts
2     Draco Malfoy       13   Hogwarts
此列表视图来自第三方应用程序,我没有源代码

我需要的是获取完整的行,例如: 1哈利波特13霍格沃茨

我使用inspect获取ID。我正在使用teststack

这是我尝试过的代码:

var listItem = listStudents.Items.ElementAt(0);
问题是,它只返回行的第一列,即id。 例如,在第一行中: 一,

我检查了inspect,它显示:

[- "1" list item          ]
  [  + "Harry Potter" text]
  [  + "13" text          ]
  [  + "Hogwarts" text    ]

是否仍有获取这些值的方法?

Items属性返回第一列的集合文本是白色代码

 public virtual List<string> Items
 {
     get
     {
         return Rows.Select(listViewRow => listViewRow.Cells[0].Text).ToList();
     }
 }
这也支持使用单元格的索引

 listView.Rows[0].Cells[0]
下面是我基于答案的单元测试的示例

 void CellText()
 {
     using (var window = StartScenario("OpenListView", "ListViewWindow"))
     {
         var listView = window.Get<ListView>("ListView");
         ListViewRow first = listView.Rows[0];
         Assert.Equal("Search", first.Cells[0].Text);
         Assert.Equal("Google", first.Cells[1].Text);
         ListViewRow second = listView.Rows[1];
         Assert.Equal("Mail", second.Cells[0].Text);
         Assert.Equal("GMail", second.Cells[1].Text);
     }
 }
void CellText()
{
使用(var window=StartScenario(“OpenListView”、“ListViewWindow”))
{
var listView=window.Get(“listView”);
ListViewRow first=listView.Rows[0];
Assert.Equal(“搜索”,第一个.Cells[0].Text);
Assert.Equal(“Google”,first.Cells[1].Text);
ListViewRow second=listView.Rows[1];
Assert.Equal(“邮件”,第二个.Cells[0].Text);
Assert.Equal(“GMail”,second.Cells[1].Text);
}
}

Items属性返回第一列的集合文本这里是白色代码

 public virtual List<string> Items
 {
     get
     {
         return Rows.Select(listViewRow => listViewRow.Cells[0].Text).ToList();
     }
 }
这也支持使用单元格的索引

 listView.Rows[0].Cells[0]
下面是我基于答案的单元测试的示例

 void CellText()
 {
     using (var window = StartScenario("OpenListView", "ListViewWindow"))
     {
         var listView = window.Get<ListView>("ListView");
         ListViewRow first = listView.Rows[0];
         Assert.Equal("Search", first.Cells[0].Text);
         Assert.Equal("Google", first.Cells[1].Text);
         ListViewRow second = listView.Rows[1];
         Assert.Equal("Mail", second.Cells[0].Text);
         Assert.Equal("GMail", second.Cells[1].Text);
     }
 }
void CellText()
{
使用(var window=StartScenario(“OpenListView”、“ListViewWindow”))
{
var listView=window.Get(“listView”);
ListViewRow first=listView.Rows[0];
Assert.Equal(“搜索”,第一个.Cells[0].Text);
Assert.Equal(“Google”,first.Cells[1].Text);
ListViewRow second=listView.Rows[1];
Assert.Equal(“邮件”,第二个.Cells[0].Text);
Assert.Equal(“GMail”,second.Cells[1].Text);
}
}

既然您有多个行/col,那么您必须访问整个索引行难道没有意义吗<代码>项[0]。元素位于[0]?@Tdorno。谢谢,我试过了,但是没有达到预期的效果。既然您有多个行/列,那么您必须访问整个索引行难道没有意义吗<代码>项[0]。元素位于[0]?@Tdorno。谢谢,我试过了,但没有达到预期效果。