我正在使用TestStack White来实现Windows WPF聊天应用程序的UI自动化。我可以通过AutomationID获取添加按钮,它会弹出一个带有两个MenuItem的ContextMenu来选择添加联系人或创建一个组。
当我尝试使用其automationID获取创建组 MenuItem时,它会引发异常:
TestStack.White.AutomationException:无法获得AutomationId = mitem_createGroup
这些是我尝试获取MenuItem但失败的方法:
mainWindow.Get(SearchCriteria.ByAutomationId("mitem_createGroup")).Click();
mainWindow.MenuBar.MenuItemBy(SearchCriteria.ByAutomationId("mitem_createGroup")).Click();
mainWindow.Get<MenuBar>(SearchCriteria.ByClassName("ContextMenu"));
var createGrpBtn = mainWindow.Get(SearchCriteria.ByText("Create group"));
mainWindow.PopupMenu("Create group");
我没有想法,需要帮助解决这个问题。
<小时/> 修改 这是contextmenu和menuitems的XAML。 ContextMenu实际上是ImageButton的
<ContextMenu StaysOpen="False" FontSize="14" Style="{DynamicResource ContextMenuStyle}">
<MenuItem Height="32" Header="{lex:Loc STRING_MAIN_WINDOW_ADD_CONTACT}" Name="mitem_addContact" Click="mitem_addContact_Click">
<MenuItem.Icon>
<Image Source="{svg:SvgImage /ChatApp;component/Images/add_contact.svg}" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Height="32" Header="{lex:Loc STRING_MAIN_WINDOW_CREATE_GROUP}" Name="mitem_createGroup" Click="mitem_createGroup_Click">
<MenuItem.Icon>
<Image Source="{svg:SvgImage /ChatApp;component/Images/add_group.svg}" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
答案 0 :(得分:1)
我在SO上发现了这篇文章:Find option to right click c# White/TestStack UI Automation
你只能使用Window.Get<T>
来获取ContextMenu,当我尝试获取ContextMenu弹出窗口时,我的方向正确,但我做错了。 (参见我试过的最后一种方法)。
SO链接帮助我找到解决方案:
PopUpMenu popup = mainWindow.Popup;
Menu createGroup_item = popup.ItemBy(
SearchCriteria.ByAutomationId("mitem_createGroup")
);
createGroup_item.Click();