无法在 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 循环。 所以你应该检查集合的行数。

您绝对可以通过获取其子项来迭代 WinTableUitestcontrolCollection rows = WinTable.GetChildren() 然后将其放入 for 循环中。

但是,如果 Table 和行之间有另一个控件,那么您需要检查层次结构。