论坛首页 入门技术论坛

关于swtbot工具的示例

浏览 4139 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-31   最后修改:2011-01-04
这段时间在研究swtbot,写了段代码,新手可以交流下,首先建立一个插件工程,引入相关的JAR包,
org.eclipse.ui,

org.eclipse.core.runtime,

org.junit4;bundle-version="4.8.1",

org.eclipse.swtbot.eclipse.finder,

org.eclipse.swtbot.junit4_x;

org.eclipse.swtbot.swt.finder,

org.apache.log4j,

org.hamcrest;"
要使用SWTBot首先要进行升级,下载SWTBot的插件,这里我使用的是Eclipse3.6,
依次选择 eclipse 菜单项"Help-> Install New Software …",在弹出的窗口中添加更新站点,
如图所示,站点是
http://download.eclipse.org/technology/swtbot/Helios/dev-build/update-site。
package plug_test;

import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class Creat {
private static SWTWorkbenchBot bot;

@BeforeClass
public static void setUpBeforeClass() throws Exception {
bot = new SWTWorkbenchBot();
bot.viewByTitle("Welcome").close();
}

@Test
public void canCreateANewJavaProject() throws Exception {
bot.menu("File").menu("New").menu("Project...").click();

SWTBotShell shell = bot.shell("New Project");
shell.activate();
bot.tree().getTreeItem("Java").expand().select("Java Project");
bot.button("Next >").click();

bot.textWithLabel("Project name:").setText("MyFirstProject");

bot.button("Finish").click();
bot.button("Yes").click();
}

@Test
public void canCreateANewJavaClass() throws Exception {
bot.toolbarDropDownButtonWithTooltip("New Java Class")
.menuItem("Class").click();

bot.sleep(2000);

bot.shell("New Java Class").activate();
bot.textWithLabel("Source folder:").setText("MyFirstProject/src");

bot.textWithLabel("Package:").setText("org.eclipsecon.project");
bot.textWithLabel("Name:").setText("HelloWorld");

bot.button("Finish").click();

SWTBotEclipseEditor editor = bot.editorByTitle("HelloWorld.java")
.toTextEditor();//编辑筐
editor.insertText(4, 0, "int i=6;\n");//插入代码
editor.save();

SWTBotView ProjectExplorerView = bot.viewByTitle("Package Explorer");
ProjectExplorerView.show();

Composite ProjectExplorerComposite = (Composite) ProjectExplorerView
.getWidget();
Tree Project_tree = (Tree) bot.widget(widgetOfType(Tree.class),
ProjectExplorerComposite);
SWTBotTree ProjectExplorerTree = new SWTBotTree(Project_tree);
ProjectExplorerTree.getTreeItem("MyFirstProject").select()
.expandNode("src").expandNode("org.eclipsecon.project")
.expandNode("HelloWorld.java").expand();

System.out.println(bot.cTabItem().activate().getText());

bot.sleep(15000);

}

@AfterClass
public static void tearDownAfterClass() throws Exception {
bot.sleep(5000);
}

}


----------
package plug_test;

import org.eclipse.swtbot.swt.finder.junit.SWTBotJUnit4Suite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@SuppressWarnings("deprecation")
@RunWith(SWTBotJUnit4Suite.class)
@SuiteClasses({Creat.class})
public class AllTests {
}
   发表时间:2011-01-04  
liuningbo 写道
这段时间在研究swtbot,写了段代码,新手可以交流下,首先建立一个插件工程,引入相关的JAR包,
org.eclipse.ui,

org.eclipse.core.runtime,

org.junit4;bundle-version="4.8.1",

org.eclipse.swtbot.eclipse.finder,

org.eclipse.swtbot.junit4_x;

org.eclipse.swtbot.swt.finder,

org.apache.log4j,

org.hamcrest;"
要使用SWTBot首先要进行升级,下载SWTBot的插件,这里我使用的是Eclipse3.6,
依次选择 eclipse 菜单项"Help-> Install New Software …",在弹出的窗口中添加更新站点,
如图所示,站点是
http://download.eclipse.org/technology/swtbot/Helios/dev-build/update-site。
package plug_test;

import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class Creat {
	private static SWTWorkbenchBot bot;

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		bot = new SWTWorkbenchBot();
		bot.viewByTitle("Welcome").close();
	}

	@Test
	public void canCreateANewJavaProject() throws Exception {
		bot.menu("File").menu("New").menu("Project...").click();

		SWTBotShell shell = bot.shell("New Project");
		shell.activate();
		bot.tree().getTreeItem("Java").expand().select("Java Project");
		bot.button("Next >").click();

		bot.textWithLabel("Project name:").setText("MyFirstProject");

		bot.button("Finish").click();
		bot.button("Yes").click();
	}

	@Test
	public void canCreateANewJavaClass() throws Exception {
		bot.toolbarDropDownButtonWithTooltip("New Java Class")
				.menuItem("Class").click();

		bot.sleep(2000);

		bot.shell("New Java Class").activate();
		bot.textWithLabel("Source folder:").setText("MyFirstProject/src");

		bot.textWithLabel("Package:").setText("org.eclipsecon.project");
		bot.textWithLabel("Name:").setText("HelloWorld");

		bot.button("Finish").click();

		SWTBotEclipseEditor editor = bot.editorByTitle("HelloWorld.java")
				.toTextEditor();//编辑筐
		editor.insertText(4, 0, "int i=6;\n");//插入代码
		editor.save();

		SWTBotView ProjectExplorerView = bot.viewByTitle("Package Explorer");
		ProjectExplorerView.show();

		Composite ProjectExplorerComposite = (Composite) ProjectExplorerView
				.getWidget();
		Tree Project_tree = (Tree) bot.widget(widgetOfType(Tree.class),
				ProjectExplorerComposite);
		SWTBotTree ProjectExplorerTree = new SWTBotTree(Project_tree);
		ProjectExplorerTree.getTreeItem("MyFirstProject").select()
				.expandNode("src").expandNode("org.eclipsecon.project")
				.expandNode("HelloWorld.java").expand();

		System.out.println(bot.cTabItem().activate().getText());

		bot.sleep(15000);

	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		bot.sleep(5000);
	}

}


----------
package plug_test;

import org.eclipse.swtbot.swt.finder.junit.SWTBotJUnit4Suite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;

@SuppressWarnings("deprecation")
@RunWith(SWTBotJUnit4Suite.class)
@SuiteClasses({Creat.class})
public class AllTests {
}
0 请登录后投票
   发表时间:2011-01-23  
在swtbot里写一个右键操作,楼主遇到过吗?谢谢。
0 请登录后投票
   发表时间:2011-01-24  
zijings8374 写道
在swtbot里写一个右键操作,楼主遇到过吗?谢谢。

用contextMenu参数就是你右键要选择的哪个,呵呵
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics