CodedUI,SpecFlow:尝试从按钮获取菜单选项

在我的应用程序中有一个带有下拉菜单和2个选项/菜单的按钮。我可以使用codedUI单击该按钮,但是无法单击该按钮中的菜单项。遵循我为此编写的C#代码。

CodedUI,SpecFlow:尝试从按钮获取菜单选项

    WinButton _messageMenuItem = new WinButton(ToolBar);
   _messageMenuItem.SearchProperties.Add(WinButton.PropertyNames.Name,"Messages (4)");
   _messageMenuItem.WindowTitles.Any(s => regex.IsMatch(s));
   Click(_messageMenuItem);//**Works**
   WinWindow _messagesdropdown = new WinWindow(MessageMenuItem);
   _messagesdropdown.SearchProperties.Add(WinWindow.PropertyNames.Name,"Messages (4)DropDown"); //DropDown
   _messagesdropdown.WindowTitles.Any(s => regex.IsMatch(s));
   Click(_messagesdropdown);//**Doesnt work**
   UITestControlCollection AllMenuItems = _messageMenuItem.getchildren();
   UITestControlCollection AllFirstMenuItems = _messagesdropdown.getchildren();
   //Click(AllMenuItems[0]);//**Doesnt work**
   //Click(AllFirstMenuItems[0]);//**Doesnt work**
   WinmenuItem _textMessagesMenuItem = new WinmenuItem();
   _textMessagesMenuItem.SearchProperties.Add(WinmenuItem.PropertyNames.Name,"Text Messages (4)"); //Text
   _textMessagesMenuItem.WindowTitles.Any(s => regex.IsMatch(s));
   return _textMessagesMenuItem;
wgbmuziyo 回答:CodedUI,SpecFlow:尝试从按钮获取菜单选项

我通过在Codeed UI中记录控件并使用WinMenu Item的生成类来修复它。因此,直到单击该按钮的代码都保持不变。

WinButton _messageMenuItem = new WinButton(ToolBar);
_messageMenuItem.SearchProperties.Add(WinButton.PropertyNames.Name,"Messages (4)");
_messageMenuItem.WindowTitles.Any(s => regex.IsMatch(s));
Click(_messageMenuItem);//**Works**

但是此后,使用UI测试记录来获取菜单项

public class UIItemWindow : WinWindow
        {
            //Use this button for UI Messages window
            public UIItemWindow()
            {
                #region Search Criteria
                this.SearchProperties.Add(WinWindow.PropertyNames.AccessibleName,"Messages (4)DropDown");
                this.SearchProperties.Add(new PropertyExpression(WinWindow.PropertyNames.ClassName,"WindowsForms10.Window",PropertyExpressionOperator.Contains));
                #endregion
            }

            #region Properties
            public WinMenuItem UITextMessages4MenuItem
            {
                get
                {
                    if ((this.mUITextMessages4MenuItem == null))
                    {
                        this.mUITextMessages4MenuItem = new WinMenuItem(this);
                        #region Search Criteria
                        this.mUITextMessages4MenuItem.SearchProperties.Add(WinMenuItem.PropertyNames.Name,"Text Messages (4)");
                        #endregion
                    }
                    return this.mUITextMessages4MenuItem;
                }
            }

点击操作的执行方式如下

UIItemWindow testWindow = new UIItemWindow();
WinMenuItem _textMessagesMenuItem = testWindow.UITextMessages4MenuItem;
Mouse.click(_textMessagesMenuItem );//**Works**
本文链接:https://www.f2er.com/2738061.html

大家都在问