无法在 WinTable 中迭代
Can not iterate in a WinTable
我有一个 WinTable 记录器,我想用我的测试值检查一些行值。由于每天都会添加新行,因此行索引值是动态的,我需要找到它。我需要迭代所有行以获得我想要检查值的正确行。但是我还不能迭代 table 中的所有行。
#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());
如果 "rows" 集合中有零行,则不会进入 for 循环。
所以你应该检查集合的行数。
您绝对可以通过获取其子项来迭代 WinTable
。
UitestcontrolCollection rows = WinTable.GetChildren()
然后将其放入 for 循环中。
但是,如果 Table 和行之间有另一个控件,那么您需要检查层次结构。
我有一个 WinTable 记录器,我想用我的测试值检查一些行值。由于每天都会添加新行,因此行索引值是动态的,我需要找到它。我需要迭代所有行以获得我想要检查值的正确行。但是我还不能迭代 table 中的所有行。
#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());
如果 "rows" 集合中有零行,则不会进入 for 循环。 所以你应该检查集合的行数。
您绝对可以通过获取其子项来迭代 WinTable
。
UitestcontrolCollection rows = WinTable.GetChildren()
然后将其放入 for 循环中。
但是,如果 Table 和行之间有另一个控件,那么您需要检查层次结构。