如何在swtboot中调用上下文菜单

时间:2013-06-30 13:41:45

标签: swtbot

我想在我的应用程序中调用上下文菜单。

我在树中没有任何项目的问题。

我激活了我的视图,然后我想打开上下文菜单。

 SWTBotView view = bot.viewByTitle("Project Explorer");

 view.bot.tree().contextMenu("New").click();

然后我收到错误消息

你可以告诉我如何在树中没有任何项目的情况下打开contextMeny吗?

2 个答案:

答案 0 :(得分:0)

取决于您尝试实现的目标,您可以尝试通过文件菜单而不是上下文菜单。 "新"应该那样工作。

答案 1 :(得分:0)

因为没有直接的方法来做到这一点。我假设你有一个打开上下文菜单的快捷方式。

bot.activeShell().pressShortcut(<your shortcut>);

bot.waitUntil(new ContextMenuAppears(tree,
                "New"));
tree.contextMenu("New").click();

ContextMenuAppears是一个等待显示所需上下文菜单的ICondition。

public class ContextMenuAppears implements ICondition {

private SWTBotTree swtBotTree;
private String mMenuText;
public TekstContextMenuAppears(SWTBotTree pSwtBotTree, String menuText) {
    swtBotTree = pSwtBotTree;
    mMenuText = menuText;
}

@Override
public boolean test() throws Exception {
    try {           
        return swtBotTree.contextMenu(mMenuText).isVisible();   
    } catch (WidgetNotFoundException e) {
        return false;
    }

}

@Override
public void init(SWTBot bot) {
    // TODO Auto-generated method stub

}

@Override
public String getFailureMessage() {
    // TODO Auto-generated method stub
    return null;
}

}