我有一个WinTable记录器,我想用测试值检查一些行值。由于每天都会添加新行,因此行索引值是动态的,因此我需要找到它。我需要迭代所有行以获取要检查其值的正确行。但是,我还不能迭代表中的所有行。
#region Variable Declarations
WinTable uIG1Table = this.UIProMANAGEWindow.UIMouldOperationWindow.UIG1Window.UIG1Table;
#endregion
Assert.AreEqual(this.OperationListTableControl1ExpectedValues.UIG1TableControlType, uIG1Table.ControlType.ToString());
当我有了行索引时,我可以使用GetRow纠正行
WinRow dataGridrow = uIG1Table.GetRow(1);
MessageBox.Show(dataGridrow.RowIndex.ToString());
当我没有行索引时,我需要进行迭代,但是我无法为所有行循环,因此代码永远不会进入foreach循环。
UITestControlCollection rows = uIG1Table.Rows;
foreach (WinRow row in uIG1Table.Rows)
{
MessageBox.Show(row.RowIndex.ToString());
foreach (WinCell cell in row.Cells)
{
MessageBox.Show(cell.Value);
}
我也试图将行作为数组进行辩解,但没有成功
// MessageBox.Show(rows[5].RowIndex.ToString());
答案 0 :(得分:1)
如果“行”集合中的行为零,它将不会进入for循环。 因此,您应该检查集合的行数。
您绝对可以带着孩子来遍历WinTable
。
UitestcontrolCollection rows = WinTable.GetChildren()
,然后将其放入for循环中。
但是,如果在表和行之间还有另一个控件,则需要检查层次结构。