将 Teststack White 与 Windows 文件资源管理器一起使用

Use Teststack White with Windows File Explorer

我无法使用 White 框架进入文件资源管理器 window。我在文件资源管理器上使用了 Window 的 10 SDK Inspect 工具来得到这个: Inspect Image

如您所见,window 名称为空。

为了至少从他们的 docs 中获取 window,您需要使用 GetWindow 和名称。我使用了这个代码块:

Application application = Application.Launch("C:\Window\explorer.exe");
System.Threading.Thread.Sleep(10000);
List<Window> windows = Desktop.Instance.Windows();
for (int i = 0; i < windows.Count; i++)
    Console.WriteLine(i + ". " + windows[i]);
Window fileExplorer = application.GetWindow("");

循环输出显示所有 windows:(2. 很可能是文件资源管理器)

0: C:\Users\admin\Documents\Visual Studio 2017\foo.exe

1: foo (Running) - Microsoft Visual Studio

2:

3: Program Manager

并且 GetWindow 显示:

Couldn't find window with title in process 6296, after waiting for 30 seconds

当在检查中给出名称时,我已经让 Teststack White 与其他应用程序一起工作,所以它似乎不是 Teststack White 的问题,而是文件资源管理器的问题,因为它没有名称。不过,有没有其他方法可以让 TestStack 获取文件资源管理器 window.

TL;DR:如何让 TestStack White 框架获取 Window 的文件资源管理器 window 以便向其发送命令?

TestStack White 太有限了。切换到 Microsoft 的 UI 自动化。使用

var fileExplorer = 
AutomationElement.RootElement.FindFirst(TreeScope.Children, 
new PropertyCondition(AutomationElement.NameProperty, "File Explorer"));

获取文件资源管理器。