据我所知,有两种方法可以使用TestStack.White获取窗口:
启动应用程序,然后获取窗口
var applicationPath = Path.Combine(applicationPath, "foo.exe");
Application application = Application.Launch(applicationPath);
Window window = application.GetWindow("bar", InitializeOption.NoCache);
获取屏幕上的所有窗口并找到所需的窗口
List<Window> windows = Desktop.Instance.Windows();
foreach (Window w in windows){
// Iterate through the windows list to get the window you want
}
第一个解决方案有一个很大的限制,因为它始终要求首先启动该应用程序。另一方面,第二个窗口可以在任何情况下使用,但是当有许多窗口时,这可能会非常耗时。如果找到子窗口,情况可能会更糟,因为您必须在子窗口列表中进行另一个循环。
那么,还有什么更好的方法来查找窗口?我已经使用了几种自动化框架和工具,它们都具有通过名称或其他条件直接查找窗口的方法。