0

いくつかのアクションを含むツールバーを持つ 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 テストを実行すると、ボタンが見つからないというエラー メッセージが表示されます。

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 ボタンとしてツールバーに配置されていないということですか? または、それが見つからない理由は何でしょうか?

4

2 に答える 2

0

bot.toolbarButtonWithTooltip(MyAction.TITLE).click(); を試してください。また、EclipseSpy ビューを使用して、作業したいウィジェットのタイプを判別することもできます (ウィンドウ - ビューの表示 - SWTBot カテゴリー)。

于 2015-03-05T16:13:10.803 に答える
0

ツールバーのボタンは、SWTBot によって少し異なる方法で見つけることができます。私は最終的に次のようにすることができました:

List<SWTBotToolbarButton> items = view.getToolbarButtons();
for (SWTBotToolbarButton button : items) {
    if (MyAction.TITLE.equals(button.getToolTipText())) {
        button.click();
        break;
    }
}
于 2015-02-27T10:53:32.690 に答える