我是C#和TestStack.White的新手,
我正在测试的应用程序(尝试....)是一个WPF应用程序。
我有一个带弹出子窗口的窗口,我想关闭它。
我对那些弹出窗口没有AutomationId :(
我有MainWindow和MainWindow.HasPopup()返回true:)
但是我不知道要从我的MainWindow获取(TestStack.White.UIItems.WindowItems.Window)列表,所以我可以这样做: Foreach _windItem ... _windItem .Close();
提前致谢!
EyalS。
答案 0 :(得分:0)
Window上应该有Popup属性。 HasPopup实际上正在检查弹出属性。我认为更好的方法是向应用程序询问所有窗口,然后关闭所有窗口,除了具有将其指定为主窗口的属性的窗口。以下是White中的示例,了解如何执行此操作。
Application application = Application.Launch("Path to Application");
foreach (Window window in application.GetWindows())
{
if (window.AutomationElement.Current.AutomationId == "MainWindow") continue;
window.Close();
}
我还建议调查FlaUI,因为FlaUI的API使得获取AutomationElement中的信息变得更加容易,而不必将依赖项添加到White正在包装的底层框架中。 Plus White有许多属性不会像你认为的那样以Popup属性的方式工作。