我有一个带有ViewPart的RCP应用程序,它有一个工具栏,上面有一些操作。这些操作由系统作为带有图标和工具提示的简单按钮放在工具栏上。
该行动看上去如下:
public class MyAction extends Action {
public static final String TITLE = "My Action Tooltip";
public MyAction() {
super(TITLE, Activator.getImageDescriptor("icons/clock_edit.png"));
setToolTipText(TITLE);
}
// ...
}现在,我尝试用SWTBot调用一个按钮单击它们,如下所示:
SWTBotButton myButton = bot.buttonWithTooltip(MyAction.TITLE);
myButton.click();如果我让SWTBot测试运行,我会得到错误消息,它找不到Button:
org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException: Could not find widget matching: (of type 'Button' and with tooltip 'My Action Tooltip' and with style 'SWT.PUSH')
at org.eclipse.swtbot.swt.finder.SWTBotFactory.waitUntilWidgetAppears(SWTBotFactory.java:362)
at org.eclipse.swtbot.swt.finder.SWTBotFactory.widget(SWTBotFactory.java:309)
at org.eclipse.swtbot.swt.finder.SWTBot.buttonWithTooltip(SWTBot.java:205)
at org.eclipse.swtbot.swt.finder.SWTBot.buttonWithTooltip(SWTBot.java:193)现在我想知道,一个动作不是作为一个SWT.PUSH按钮放到工具栏上吗?或者它找不到它的原因是什么?
发布于 2015-02-27 10:53:32
SWTBot可以在工具栏上找到一些不同的按钮。我终于可以这样做了:
List<SWTBotToolbarButton> items = view.getToolbarButtons();
for (SWTBotToolbarButton button : items) {
if (MyAction.TITLE.equals(button.getToolTipText())) {
button.click();
break;
}
}发布于 2015-03-05 16:13:10
也可以尝试bot.toolbarButtonWithTooltip(MyAction.TITLE).click();,您可以使用EclipseSpy视图来确定要处理的小部件的类型(类别)
https://stackoverflow.com/questions/28762320
复制相似问题