在Windows文件资源管理器中使用Teststack White

时间:2017-05-31 02:37:29

标签: c# ui-automation white

我无法使用White框架抓取文件资源管理器窗口。我在文件资源管理器上使用Window的10 SDK Inspect工具来获取: Inspect Image

您可以注意到窗口名称为空。

为了抓住窗口,至少从他们的docs,你需要使用GetWindow和Name。我使用了这个代码块:

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("");

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

  

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

     

1:foo(正在运行) - Microsoft Visual Studio

     

2:

     

3:项目经理

GetWindow显示:

  在等待30秒后,

在过程6296中找不到带标题的窗口

我已经让Teststack White与其他应用程序一起工作,因为在检查中给出了Name,所以它似乎不是Teststack White的问题,而是使用File Explorer,因为它没有Name。但是,有没有其他方法可以让TestStack获取文件资源管理器窗口。

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

1 个答案:

答案 0 :(得分:0)

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

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

获取文件资源管理器。