Я исправил это, записав элемент управления в Coded UI и используя сгенерированный класс для элемента WinMenu. Таким образом, код до нажатия кнопки остается прежним.
WinButton _messageMenuItem = new WinButton(ToolBar);
_messageMenuItem.SearchProperties.Add(WinButton.PropertyNames.Name, "Messages (4)");
_messageMenuItem.WindowTitles.Any(s => regex.IsMatch(s));
Click(_messageMenuItem);//**Works**
Но после этого запись из теста пользовательского интерфейса используется для получения пункта меню
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**