Не могу перебрать в WinTable - PullRequest
0 голосов
/ 16 января 2019

У меня записывающее устройство 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());

1 Ответ

0 голосов
/ 20 января 2019

Он не будет идти в цикле for, если в коллекции "columns" есть ноль строк. Поэтому вы должны проверить количество строк для коллекции.

Вы можете определенно перебрать WinTable, взяв его детей. UitestcontrolCollection rows = WinTable.GetChildren() и затем вставляем это в цикл.

Но если между таблицей и строками есть другой элемент управления, вам необходимо проверить иерархию.

...