2014-03-30 55 views
1

我有一个需要运行自动化测试的大型WPF应用程序。 我使用的是编码UI测试生成器。当我将鼠标悬停在应用程序中的单元格上时,我可以看到它的所有属性:automationId,ColumnHeader等等。当我点击刷新按钮时,间谍无法找到控制权,他是如何发现前两次的?使用编码的UI测试生成器查找控件时遇到问题

我有同样的问题,如果我尝试使用代码来找到这个控制:

WpfCell myCell = new WpfCell(); 
myCell.SearchProperties.Add(WpfCustom.PropertyNames.AutomationId,"Cell_1_2"); 
myCell.DrawHighlight(); 

细胞是不突出,我得到ControlNotFoundExceptin。

回答

3

通过搜索(使用MSAA/UIA层次结构)找到具有命中测试(十字线)的元素并不相同。生成的搜索属性可能不好。用十字线获取单元格,将它添加到UIMap中,然后在UIMap编辑器中检查它是否可以找到所有单元格的父母/祖先,然后开始处理单元格的搜索属性。修改,保存并搜索单元格(Locate the UI Control)。重复,直到它工作。

至于代码:没有。不不不。该代码片段所做的是尝试在桌面下查找单元格元素。除非设置层次结构,否则它将不起作用。在构造函数中设置UI元素会将其设置为控件的“搜索限制容器”或父级。类似于

var myWindow = new WpfWindow(); 
var myTable = new WpfTable(myWindow); 
var myCell = new WpfCell(myTable); 
相关问题