Jeevan
Jeevan

Reputation: 487

SWTBot Recorder Generated code bot.contextMenu not found

The following is the code generated by SWTBot Recorder.

public class UserInterfaceTester extends SWTBotEclipseTestCase {
    @Test
    public void TableTest() {
        bot.tree().getTreeItem("wtrt").select();
        bot.contextMenu("Expand All").click();
bot.tree().getTreeItem("wtrt").getNode("erwtesg(3)").getNode("esrgg").select();
        bot.contextMenu("Open Application Metadata File").click();
        bot.text().setText("9.5");
        bot.text().setText("Synopsys");
        bot.text().setText("3.2");
    }
} 

But when I try to put that in my Test case to run inside my project it shows error in bot.contextMenu. It says "The method contextMenu(String) is undefined for the type SWTEclipseBot".

Extending SWTBotEclipseTestCase automatically gives me bot object which is

protected SWTEclipseBot bot = new SWTEclipseBot();

But it says it is a deprecated version. It says "Deprecated. use SWTWorkbenchBot. This will be removed from future releases"

Hence I tried

SWTWorkbenchBot bot = new SWTWorkbenchBot(); // by removing extends SWTBotEclipseTestCase

that to did not work. What is the issue? Can some one help?

Upvotes: 1

Views: 573

Answers (1)

Nick Wilson
Nick Wilson

Reputation: 4989

The ContextMenuHelper class should help with this, and it works round some bugs with dynamic context menus. try:

SWTBotMenu menu =
            new SWTBotMenu(ContextMenuHelper.contextMenu(bot.tree(), "Expand All"));
menu.click();

Upvotes: 2

Related Questions