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

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

问题描述:

尝试从WPF网格中生成一个对象数组,以便在Visual Studio 2015编码的UI中获取所有行及其对应的单元格数据测试,用于使用网格控件测试桌面应用程序。在编码的UI测试中生成WPF网格控件中所有行和列的对象数组C#

基本上,我试图搜索,找到并单击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方法将返回一个UITestControlCollection与控制的所有直接后代。你想要的物品可能是他们的子孙后代......的后代。他们可能会通过添加以下到您的代码中找到:

UITestControlCollection children = gridControl.GetChildren(); 

这可能是值得使用GetChildren获得所需要的值从gridControl做递归下降。另外,如果你知道控件的确切层级那么,如果只需要两个层次,你可以使用代码样式:

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

} 
+0

感谢的人的响应,但这样做的后裔递归的,在某些时候,“UITestControl '在我得到我真正想要的行或单元格之前,没有给你任何孩子。 尝试使用使用[FarPoint Spread工具](http://farpoint-spread.software.informer.com/8.0/)的编码UI自动化我们的应用程序。我正在尝试使用SpreadControl上的编码UI,但它不提供我ROWS或COLUMNS访问权限,例如根据'String' 查找单元格,或单击#number列或行。你能帮我在这里如何继续前进? –

+0

@Omm也许行和列位于不支持编码UI的自定义控件中。当你使用Coded UI记录并生成工具时,它可以看到单元格,还是仅仅将整个控件看作一个项目?如果是后者,那么您需要向控件的作者询问它对Coded UI的支持。 – AdrianHHH

+0

是的,它看到整个表单为一个单一的项目(如在画布中)。在作者的论坛中检查了解决方案,他们表示它不支持到目前为止的编码UI自动化。我实际上是在寻找替代品。不管怎样,谢谢:) –