C# Teststack.White 自动化 Winforms 菜单 (ControlType.Menu),它不是主 window 的子菜单

C# Teststack.White automating Winforms Menu (ControlType.Menu) which is not child of the main window

我正在使用 Teststack.White 自动化遗留 WinForms 应用程序,我遇到了一个问题。 右键单击某些项目后出现的菜单,出于某种原因 似乎在 UI 层次结构中的主应用程序 window 之外:

实现此菜单自动化的最佳方法是什么? 我们的测试框架是围绕 window 层次结构构建的,我们访问的项目是主应用程序 window.

的子项

现在我们通过使用 键盘箭头 到 select 菜单项并单击 Enter(这不是最好的解决方案,我想)。

在Teststack.White中有没有更好的方法来解决这个问题?谢谢!

在所有桌面下搜索即可找到右键菜单windows。请参阅下面的代码:

//调用函数GetCurrentPopUpMenu

        PopUpMenu pop = GetCurrentPopUpMenu();

        pop.Item("Add Child").Click();

//GetCurrentPopUpMenu函数

    PopUpMenu GetCurrentPopUpMenu()
    {
        List<Window> windows = WindowFactory.Desktop.DesktopWindows();
        foreach (Window w in windows)
        {
            if (w.Name == "") return w.Popup;
        }

        return null;
    }