TreeItem 中的每个 UIElement 在 SearchProperties 中都有一个“值”属性。此值似乎具有深度,例如我的电脑的值为 1,我的电脑中的某个文件夹的值为 2,依此类推。我正在尝试修改我的代码以动态定位文件夹名称。为了做到这一点,我试图将 name 属性和 value 属性作为搜索属性传递。但是 WinControl.PropertyNames.Value 不存在。我可以做类似的事情
con.SearchProperties.Add(WinControl.PropertyNames.Name, folderName[ii], PropertyExpressionOperator.Contains))。
UserInput 可能类似于:C:\folder1\folder2\folder3 或 C:\folder1\folder2
根据用户输入中的文件夹数量,需要遍历treeItem。我正在尝试做类似的事情
string path = "C:\folder1\folder2\folder3";
string[] folderNames = path.Split("\\");
string driveLetter = folderNames[0];
for (int index=1; index < folderNames.Length; index++)
{
UITestControl locateTreeItem = this.UIBrowseForFolderWindow.UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeItem; //Points to My Computer
locateTreeItem.SearchProperties.Add(WinControl.PropertyNames.Name, folderName[index], PropertyExpressionOperator.Contains);
locateTreeItem.SearchProperties.Add(WinControl.PropertyNames.Value, index+1, PropertyExpressionOperator.Equals);
Mouse.Click(locateTreeItem);
}
但是似乎没有这样的选项 WinControl.PropertyNames.Value。我收到 compileTime 错误“Microsoft.VisualStudio.TestTools.UITesting.WinControls.WinControl.PropertyNames”不包含“值”的定义。但是,此属性与名称、控件类型等一起显示在 treeItem 的编辑搜索属性窗口中。