1

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

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

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

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

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

然后我收到错误消息

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

4

2 回答 2

0

根据您要实现的目标,您可以尝试通过文件菜单而不是上下文菜单。“新”应该这样工作。

于 2013-07-01T12:03:26.823 回答
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;
}

}
于 2013-07-04T08:39:51.067 回答