【问题标题】:how to get the popup window using TestStack.White and C#如何使用 TestStack.White 和 C# 获取弹出窗口
【发布时间】:2017-05-01 11:41:55
【问题描述】:

我是 C# 和 TestStack.White 的新手,

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

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

我没有那些弹出窗口的 AutomationId :(

我有 MainWindow 和 MainWindow.HasPopup() 返回 true :)

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

提前致谢!

EyalS.

【问题讨论】:

  • 欢迎来到 Stack Overflow!请查看我们的SO Question Checklist 以帮助您提出一个好问题,从而得到一个好的答案。

标签: c# wpf automation ui-automation white-framework


【解决方案1】:

Window 上应该有一个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 的 API 可以更轻松地获取 AutomationElement 中的信息,而无需向 White 包装的底层框架添加依赖项。此外,White 有很多属性不能像您想象的那样工作,例如 Popup 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多