查找在C# White/TestStack UI Automation中右键点击的选项

3

我正在使用C#框架White \ TestStack创建软件流程自动化。

我遇到了问题,因为我无法通过右键单击来捕获选项。

图像预览

这是我用来尝试的代码:

  panel.RightClick();    
  var propClick = _mainWindow.Get<White.Core.UIItems.MenuItems.PopupMenu>(SearchCriteria.ByText("Propeties"));
  propClick .Click();

无法捕获选项,使变量成为null propClick

很抱歉我的英语不好 :(

求助!

谢谢 :)


你确定是 Propeties 而不是 Properties 吗? - m3tikn0b
3个回答

6

1

我没有尝试过与右键菜单相关的任何内容。在您的操作后是否显示菜单?

panel.RightClick();

否则,上下文菜单不是您面板的一部分吗?
您尝试使用了吗?
panel.RightClick();    
var propClick = panel.Get<MenuItems.PopupMenu>(SearchCriteria.ByText("Propeties"));
propClick.Click();

你可以尝试使用菜单而不是弹出菜单

var propClick = panel.Get<MenuItems.Menu>(SearchCriteria.ByText("Propeties"));

或者您可以让白色为您先决定,并通过设置断点来阅读类型。
var propClick = panel.Get(SearchCriteria.ByText("Propeties"));

编辑: 除此之外,以下方法可能有助于使用键盘命令选择上下文菜单。
另外,您可能希望尝试使用键盘选择菜单。 白色没有用于上下文菜单(右键菜单)的特殊键,但以下方法可以帮助解决这个问题。
    /// <summary>
    /// Right mouse click simulation (SHIFT+F10)
    /// </summary>
    /// <param name="container">Container in whish the click should occur.</param>
    private static void ShowContextMenu(this UIItemContainer container)
    {
        container.Keyboard.HoldKey(KeyboardInput.SpecialKeys.SHIFT);
        container.Keyboard.PressSpecialKey(KeyboardInput.SpecialKeys.F10);
        container.Keyboard.LeaveKey(KeyboardInput.SpecialKeys.SHIFT);
    }

并且这个用于选择上下文菜单

    /// <summary>
    /// Get the context menu (right mouse menu) of <paramref name="container"/> whre the current focus is.
    /// </summary>
    /// <param name="mainWindow">Main window of the application, because the context menu is always a child of the window.</param>
    /// <param name="container">Container on which the right click shoul occur.</param>
    /// <returns>Context menu</returns>
    internal static PopUpMenu GetContextMenuOf(this Window mainWindow, UIItemContainer container)
    {
        using (CoreAppXmlConfiguration.Instance.ApplyTemporarySetting(c => c.PopupTimeout = 750))
        {
            container.ShowContextMenu();
            return mainWindow.Popup;
        }
    }

此外,您可能希望尝试使用键盘选择菜单。 - Rik

0
panel.RightClick();
Thread.Sleep(500);
var windows = application.GetWindows();
foreach (Window window in windows) {
    if (window.Name == "") {
        var propClick = window.Get<PopupMenu>(SearchCriteria.ByText("Propeties"));
        propClick.Click();
    }
}

根据我所见,上下文菜单是没有名称的独立窗口,但这当然是应用程序特定的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接