这个程序借鉴的网上的一个程序一样。
public class SampleSWTUI {
public Shell showGUI(final Display display) {
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(3,true));
shell.setText("Sample SWT UI");
new Label(shell, SWT.NONE).setText("User Name: ");
final Text nameText = new Text(shell, SWT.BORDER);
nameText.setText ("");
GridData data = new GridData(SWT.FILL, SWT.FILL, true, false);
data.horizontalSpan = 2;
nameText.setLayoutData(data);
new Label(shell, SWT.NONE).setText("Password: ");
final Text passwordText = new Text(shell, SWT.BORDER);
// final Text passwordText = new Text(shell, SWT.BORDER|SWT.PASSWORD);
passwordText.setText ("");
data = new GridData(SWT.FILL, SWT.FILL, true, false);
data.horizontalSpan = 2;
passwordText.setLayoutData(data);
Button loginButton = new Button (shell, SWT.PUSH);
loginButton.setText ("Login");
data = new GridData(SWT.FILL, SWT.FILL, true, false);
data.horizontalSpan = 3;
loginButton.setLayoutData(data);
loginButton.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
String user = nameText.getText();
String password = passwordText.getText();
System.out.println("\n\n\n");
if (user.equals("Favonius") && password.equals("abcd123")) {
System.out.println("Success !!!");
} else {
System.err.println("What the .. !! Anyway it is just a demo !!");
}
}
});
shell.pack();
shell.open();
return shell;
}
public static void main(String [] args) {
Display display = new Display();
Shell shell = new SampleSWTUI().showGUI(display);
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
public class SWTBotDemo {
static SWTBotButton loginButton;
static SWTBotText userText;
static SWTBotText passwordText;
static SWTBot bot;
static Display display;
static Shell shell;
@BeforeClass
public static void beforeClass() throws Exception {
SWTBotPreferences.PLAYBACK_DELAY = 1000;
display = Display.getDefault();
shell = new SampleSWTUI().showGUI(display);
bot = new SWTBot(shell);
loginButton = bot.button("Login");
userText = bot.textWithLabel("User Name: ");
passwordText = bot.textWithLabel("Password: ");
}
@Test
public void testLogin() {
bot.sleep(1000);
userText.setFocus();
userText.setText("aaaaaaaa");
passwordText.setFocus();
passwordText.setText("11111111");
userText.setFocus();
userText.setText("bbbbbbbb");
passwordText.setFocus();
passwordText.setText("2222222");
userText.setFocus();
userText.setText("ccccccc");
passwordText.setFocus();
passwordText.setText("3333333");
bot.sleep(1000);
loginButton.setFocus();
loginButton.click();
bot.sleep(1000);
userText.setFocus();
userText.setText("Favonius");
bot.sleep(1000);
passwordText.setFocus();
passwordText.setText("abcd123");
bot.sleep(1000);
assert(userText.getText().equals("abcd123"));
loginButton.setFocus();
loginButton.click();
bot.sleep(3000);
// while (!shell.isDisposed()) {
// if (!display.readAndDispatch()) display.sleep();
// }
//
// display.dispose();
}
}