簡體   English   中英

SWTBot可以識別動作按鈕嗎?

[英]Can SWTBot recognize Action Buttons?

我有一個帶有ViewPart的RCP應用程序,它有一個帶有一些Actions的工具欄。 這些操作由系統放在工具欄上,作為帶有圖標和工具提示的簡單按鈕。

Action看起來像這樣:

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按鈕放在工具欄上? 或者它可能找不到它的原因是什么?

SWTBot可以找到工具欄上的按鈕略有不同。 我終於能夠這樣做了:

List<SWTBotToolbarButton> items = view.getToolbarButtons();
for (SWTBotToolbarButton button : items) {
    if (MyAction.TITLE.equals(button.getToolTipText())) {
        button.click();
        break;
    }
}

嘗試bot.toolbarButtonWithTooltip(MyAction.TITLE).click(); 此外,您可以使用EclipseSpy View來確定要處理的窗口小部件的類型(Window-Show View-SWTBot Category)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM