在我的winform应用程序中,有一个BrowseForFolder窗口。在录制测试方法时,我选择了说C:\Folder1\MyData
。但是这个路径可能不同,我正在编写一个方法,它将driveLetter,foldername和filename作为参数。这些值应该是在浏览器窗口中选择的值。当我看到UIMap时,有树木项目。
例如,对于驱动器名称,其UILocalDiskCTreeItem
。搜索属性具有以下内容:
ControlType: TreeItem
Name: Local Disk (C:)
Value 2 (denotes the depth)
我尝试使用
将此树项的名称/友好名称属性设置为D驱动器this.UIBrowseForFolderWindow.UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeItem.UILocalDiskCTreeItem.SetProperty("Friendly Name", "D:")
但是,名称似乎是只读属性,友好名称也不起作用。如何将选择值传递给树项?
答案 0 :(得分:1)
在UI Map编辑器中打开UI Map(Visual Studio 2012的标准部分,添加到Feature Pack 2中的Visual Studio 2010)。在右侧窗格中找到相关的UI Control并打开其属性面板。选择搜索属性或过滤属性,然后单击该属性的省略号。您现在应该有一个窗口,提供用于搜索控件的各种项目,并可以根据需要对其进行编辑。
我建议您执行上述操作,即使只是为了查看属性的构建方式。
另一种可能性是在使用之前通过代码更改属性。在调用记录的操作之前的“Codeduitest1.cs”文件中,声明UITestControl
并将其初始化为this.UIBrowseForFolderWindow.UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeItem
,然后更改其SearchProperties
或FilterProperties
的内容。不知道你的代码,heirachy中的初始化值可能需要更高或更低。
<强>更新即可。提问者展示了对此答案发表评论的代码。该代码在此复制,因此更容易阅读。
if (!String.IsNullOrEmpty(folderName))
{
UITestControl control1 = this.UIBrowseForFolderWindow
.UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeItem
.UILocalDiskCTreeItem.UISTreeItem;
control1.SearchProperties.Add(WinControl.PropertyNames.Name,
folderName, PropertyExpressionOperator.Contains);
Mouse.Click(control1);
}