在编码 UI 测试 C# 上从 WPF 网格控件中的所有行和列生成对象数组

Generate an array of objects from all the rows and columns in WPF grid control on a coded UI test C#

在 visual studio 2015 编码 UI 测试中,尝试从 WPF 网格获取所有行及其对应的单元格数据生成对象数组,以测试带有网格控件的桌面应用程序。

基本上,我试图根据我拥有的应该存在于某个特定单元格中的字符串值来搜索、定位并单击 WPF 网格上的单元格。

这是我尝试获取数据的 C# 测试方法:

    [TestMethod]  
    public void GridInteractions()
    {
        #region Variable Declarations

        //This is my grid control from 'UIMap.uitest' control repository            
        var gridControl = this.MainWindow.MainPanel.GridPanel;

        #endregion

     }

GetChildren 方法将 return 一个 UITestControlCollection 控件的所有直接后代。您想要的项目可能是他们的后代(后代的后代......)。可以通过在您的代码中添加以下内容来找到它们:

UITestControlCollection children = gridControl.GetChildren();

可能值得使用 GetChildrengridControl 进行递归下降以获得所需的值。或者,如果您知道控件的确切层次结构,那么如果只需要两个级别,您可以使用以下样式的代码:

UITestControlCollection children = gridControl.GetChildren();
foreach ( UITestControl child in children )
{
    UITestControlCollection grandChildren = child.GetChildren();
    foreach ( UITestControl grandChild in grandChildren )
    {
        ... process the grandchild ...
    }

}