是否可以使用SWTBot查看菜单?视图菜单的一个示例是Problems视图之一(参见屏幕截图)。例如,如何使用SWTBot将分组更改为Type?我试过了:
for (final SWTBotViewMenu a : this.bot.viewById("org.eclipse.ui.views.ProblemView").menus()) {
System.out.println(a.getText());
}
this.bot.viewById("org.eclipse.ui.views.ProblemView").toolbarDropDownButton("View Menu").menuItem("Group By").menu("None").click();
for循环根本没有给出任何东西,第二个给出错误,找不到“View Menu”。我不知道如何导航这个菜单?
答案 0 :(得分:1)
对于OP来说可能为时已晚,但这里有:
出于某种原因,激活像“问题”这样的视图的直接方式不起作用。您可以使用此解决方法:
this.bot.menu("Window").menu("Show View").menu("Problems").click();
SWTBotView problemsView = bot.activeView();
但这只会对第一部分有所帮助。您现在可以通过以下方式访问工具栏按钮:
List<SWTBotToolbarButton> toolbarButtons = problemsView.getToolbarButtons();
对于“问题”视图,这使您可以访问“聚焦于活动任务”按钮,但角落,“视图菜单”,“最小化”和“最大化”中的三个按钮不会出现在此列表中。不幸的是,到目前为止我还没有解决方案。
[编辑]
您可以调出以下视图菜单:
this.bot.menu("Window").menu("Navigation").menu("Show View Menu").click();
但我不知道如何从中选择一个项目。也许别人会知道...
答案 1 :(得分:0)
问题来自于此菜单填充了动态条目。 SWTBot不处理此类条目。 请参阅 ViewMenuFinder.getMenuItem()。处理了不同类型的 IContributionItem ,但在问题视图的情况下,项目的类型为 DynamicMenuContributionItem 。
答案 2 :(得分:0)
尝试:
SWTBotView view = bot.viewByTitle("MyView");
view.show();
view.viewMenu().menu("MyContextOption").click();
答案 3 :(得分:0)
我认为您可以尝试:
theView.viewMenu().menu("Group By").menu("Type").click();
对于项目浏览器视图,我可以使用SWTBot 2.8.0进行相同的操作