首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用TestStack.White和C#获取弹出窗口

如何使用TestStack.White和C#获取弹出窗口
EN

Stack Overflow用户
提问于 2016-12-16 02:59:23
回答 1查看 2.2K关注 0票数 0

我刚接触C#和TestStack.White

我正在测试的应用程序(尝试...)是一个WPF应用程序。

我有一个窗口,它有一个弹出子窗口,我想关闭它。

我没有指向这些弹出窗口的AutomationId:

我有MainWindow,而MainWindow.HasPopup()返回true :)

但是我不知道从我的MainWindow中获取(TestStack.White.UIItems.WindowItems.Window)的列表,所以我可以这样做: Foreach _windItem ... _windItem .Close();

提前谢谢你!

EyalS。

EN

回答 1

Stack Overflow用户

发布于 2016-12-19 23:20:13

窗口上应该有一个Popup属性。HasPopup实际上是在检查popup属性。我认为一个更好的方法是向应用程序请求它的所有窗口,然后关闭所有窗口,除了有一个属性将其指定为主窗口的窗口。这里有一个白色的例子来说明如何做到这一点。

代码语言:javascript
复制
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属性,这些属性的工作方式并不是你想象的那样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41171472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档