0

在我的 winform 应用程序中,有一个 BrowseForFolder 窗口。在记录测试方法时,我选择了 say C:\Folder1\MyData。但是这个路径可能不同,我正在编写一个方法,它以 driveLetter、文件夹名和文件名作为参数。这些值应该是在浏览器窗口中选择的值。当我查看 UIMap 时,有树项。

例如,对于驱动器名称,其UILocalDiskCTreeItem. 搜索属性具有以下内容:

ControlType: TreeItem
Name: Local Disk (C:)
Value 2 (denotes the depth)

我尝试将此树项的名称/友好名称属性设置为 D 驱动器使用

this.UIBrowseForFolderWindow.UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeItem.UILocalDiskCTreeItem.SetProperty("Friendly Name", "D:")

但是名称似乎是只读属性,并且友好名称也不起作用。如何将选择值传递给树项?

4

1 回答 1

1

在 UI Map 编辑器中打开 UI Map(Visual Studio 2012 的标准部分,在 Feature Pack 2 中添加到 Visual Studio 2010)。在右侧窗格中找到相关的 UI 控件并打开其属性面板。选择搜索属性过滤属性,然后单击该属性的省略号。您现在应该有一个窗口,其中提供了用于搜索控件的各种项目,并且可以根据需要对其进行编辑。

我建议执行上述操作,即使只是为了查看属性是如何构建的。

另一种可能性是在使用之前通过代码更改属性。在调用记录操作之前的“Codeduitest1.cs”文件中,声明 aUITestControl并将其初始化为this.UIBrowseForFolderWindow.UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeItem然后更改其SearchPropertiesor的内容FilterProperties。不知道您的代码,初始化值可能需要更高或更低。

更新。提问者展示了在对此答案的评论中起作用的代码。该代码在此处复制,因此更易于阅读。

if (!String.IsNullOrEmpty(folderName))
{
    UITestControl control1 = this.UIBrowseForFolderWindow
        .UITreeViewWindow.UIDesktopTreeItem.UIComputerTreeIt‌em
        .UILocalDiskCTreeItem.UISTreeItem;

    control1.SearchProperties.Add(WinControl.PropertyNames.Name,
        folderName, PropertyExpressionOperator.Contains);

    Mouse.Click(control1);
}
于 2013-10-31T09:54:30.627 回答