我刚接触C#和TestStack.White
我正在测试的应用程序(尝试...)是一个WPF应用程序。
我有一个窗口,它有一个弹出子窗口,我想关闭它。
我没有指向这些弹出窗口的AutomationId:
我有MainWindow,而MainWindow.HasPopup()返回true :)
但是我不知道从我的MainWindow中获取(TestStack.White.UIItems.WindowItems.Window)的列表,所以我可以这样做: Foreach _windItem ... _windItem .Close();
提前谢谢你!
EyalS。
发布于 2016-12-19 23:20:13
窗口上应该有一个Popup属性。HasPopup实际上是在检查popup属性。我认为一个更好的方法是向应用程序请求它的所有窗口,然后关闭所有窗口,除了有一个属性将其指定为主窗口的窗口。这里有一个白色的例子来说明如何做到这一点。
Application application = Application.Launch("Path to Application");
foreach (Window window in application.GetWindows())
{
if (window.AutomationElement.Current.AutomationId == "MainWindow") continue;
window.Close();
}我还建议研究一下FlaUI,因为FlaUI使获取AutomationElement中的信息变得容易得多,而不必向White包装的底层框架添加依赖项。另外,怀特有很多属性,比如Popup属性,这些属性的工作方式并不是你想象的那样。
https://stackoverflow.com/questions/41171472
复制相似问题