编码的用户界面 - 如何识别动态插入的网格行和列

时间:2011-09-30 16:43:01

标签: coded-ui-tests

在控件属性中,新行的名称等于Volume Row 62,Row Row等于61 - 记录并在几列中添加值。

当我插入带有外部数据的新行并填充相应列时,它会尝试覆盖记录中使用的行中的列数据,而不是正在插入的行。

如果我从行属性中删除62和61并使其成为常规,它将转到网格中的第一行并尝试编辑。

应更改或搜索哪些属性,以便在新行(其名称和行索引未知)中正确填充列。

感谢任何帮助。

感谢。

1 个答案:

答案 0 :(得分:0)

为了在我们的应用程序中解决这个问题,我们导出了UI映射方法并使用VAR创建了一个临时列表我不知道这是否适合您,但解决了围绕动态网格行和列的几个问题:

public void DoubleClickLaunch_UOW()         {

        var temp = this.UIWindow.UIUnitGridTable.GetChildren().ToList();
        temp.RemoveAt(0);
        var rows = temp.Select(t => t.GetChildren().Select(s => s.GetValue()).ToList()).ToList();

        var tractLetters = rows.Select(s => s[1]).ToList();

        var index = tractLetters.IndexOf(DoubleClickLaunch_UOWParams.UITESTUNIT_TPText);
        if (index >= 0)
        {
            var textbox = temp[index].GetChildren()[1].GetChildren()[0];
            Mouse.DoubleClick(textbox);
        }
        else
        {
            Mouse.DoubleClick(this.UIWindow.UIUnitGridTable.UIItemRow.UIUnitNameCell.UITESTUNIT_TPText);
        }