如何在WpfTable中找到WpfRow和WpfCell

本文关键字:WpfRow WpfCell WpfTable | 更新日期: 2024-09-20 01:04:35

我正在用Visual Studio 2012/2013为我公司的WPF应用程序进行编码UI测试。因为开发仍在不断变化中,我想创建通用的(带参数的)测试片段,并且可以重用。现在我有一个特殊情况。我有一个掩码,上面有一个WpfTable(看起来像一个网格),它包含(例如)所有用户的列表。在测试期间,我想双击选定的用户,打开下一个掩码来编辑他/她的数据。因此,我想为我的测试编程一个方法,该方法将WpfTable、ColumnIndex和UserName作为搜索参数。因此,我已经编程了这种方法来逐步通过行。

private void SearchRowAndColumn(WpfTable table)
{
    int n = 0;
    while (n < table.RowCount)
    {
        var row = new WpfRow(table);
        row.SearchProperties.Add(WpfRow.PropertyNames.RowIndex, n.ToString());
        UITestControlCollection foundRows = row.FindMatchingControls();
        if (foundRows.Count > 0)
        {
            row = (WpfRow)foundRows.ToList()[n];
            Keyboard.SendKeys(row, "{Down}", ModifierKeys.None);
            //if (n == 2)
            //{
            //    Mouse.DoubleClick(row, new Point(10, 10));
            //    n = table.RowCount;
            //}
        }
        n++;
    }
}

正如你所看到的,我评论了一些行。这些线条是为了进行一个简单的测试,看看我的想法是否有效。但现在我有一个问题,我的列表中有很多行都看不见了,因为我有74个用户,但只显示了16个。当我想看到其他用户时,我必须向下滚动。所以,正如你在我的代码中看到的那样,我试着按向下键"滚动",这会持续一段时间。不幸的是,foundRows.Count始终为18,这与视线中的行数+2相匹配。因此,当我的索引n为19时,我会得到一个异常,因为索引超出了(WpfRow)foundRows.ToList()[n]的范围。即使行和单元格不在可见范围内,我如何才能找到它们?

提前感谢!

如何在WpfTable中找到WpfRow和WpfCell

我已经找到了错误的来源。我在SearchProperties中犯了一个错误。必须是

row.SearchProperties.Add(WpfRow.PropertyNames.AutomationId, "Row_" + n);

然后它工作得非常好,它正在穿过悲伤。

相关文章:
  • 没有找到相关文章