Automation 使用编码的UI测试生成器查找控件时遇到问题

Automation 使用编码的UI测试生成器查找控件时遇到问题,automation,coded-ui-tests,Automation,Coded Ui Tests,我有一个大型WPF应用程序,需要在其上运行自动化测试。 我正在使用编码的UI测试生成器。当我将鼠标悬停在应用程序中的单元格上时,我可以看到它的所有属性:automationId、ColumnHeader等等。为什么当我点击刷新按钮时,间谍找不到他几秒钟前找到的控件 如果我尝试使用以下代码查找此控件,则会遇到相同的问题: WpfCell myCell = new WpfCell(); myCell.SearchProperties.Add(WpfCustom.PropertyNames.Autom

我有一个大型WPF应用程序,需要在其上运行自动化测试。 我正在使用编码的UI测试生成器。当我将鼠标悬停在应用程序中的单元格上时,我可以看到它的所有属性:automationId、ColumnHeader等等。为什么当我点击刷新按钮时,间谍找不到他几秒钟前找到的控件

如果我尝试使用以下代码查找此控件,则会遇到相同的问题:

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

单元格未高亮显示,我得到ControlNotFoundExceptin。

使用命中测试(十字线)查找元素与使用搜索(使用MSAA/UIA层次结构)查找元素不同。生成的搜索属性可能不好。获取带有十字线的单元格,将其添加到UIMap中,然后在UIMap编辑器中检查是否可以找到该单元格的所有父/祖先,然后开始摆弄该单元格的搜索属性。修改、保存和搜索单元格(
找到UI控件
)。重复,直到它工作

至于代码:不,不,不,这个代码片段的作用是在你的桌面下找到一个单元格元素。除非设置层次结构,否则它将无法工作。在构造函数中设置UI元素会将其设置为控件的“搜索限制容器”或父级。差不多

var myWindow = new WpfWindow();
var myTable = new WpfTable(myWindow);
var myCell = new WpfCell(myTable);