本文导读
- java.awt包中提供了许多自动化测试的API,主要用于模拟用户按下键盘上的按键,或者模拟用户敲击鼠标等
按下键盘某个按键
/**
* 模拟按下键盘单个按键,比如文档下一页:PgDn,上一页是PgUp等
*
* @param keycode:按键的值,如:KeyEvent.VK_PAGE_UP
*/
public static final void pressSingleKeyByNumber(int keycode) {
try {
/** 创建自动化测试对象 */
Robot robot = new Robot();
/**按下按键*/
robot.keyPress(keycode);
/**松开按键*/
robot.keyRelease(keycode);
/**可以稍作延时处理*/
robot.delay(500);
} catch (AWTException e) {
e.printStackTrace();
}
}
按下组合键
/**
* 模拟按下键盘的"Ctrl+*",比如文档起始位置:Ctrl+Home,结束位置:Ctrl+End
* 注意:Ctrl键是:KeyEvent.VK_CONTROL
*
* @param keycode:按键的值,如End键:KeyEvent.VK_END、Home键:KeyEvent.VK_HOME
*/
public static final void pressCtrlAndSingleKeyByNumber(int keycode) {
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(keycode);
robot.keyRelease(keycode);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.delay(100);
} catch (AWTException e) {
e.printStackTrace();
}
}
模拟鼠标单击
/**
* 模拟用户单击屏幕指定区域,默认单击屏幕最中央
*
* @param x:x坐标
* @param y:y坐标
*/
public static final void clickScreenByXY(Integer x, Integer y) {
try {
/**创建工具包对象*/
Toolkit toolkit = Toolkit.getDefaultToolkit();
/**创建自动化对象*/
Robot robot = new Robot();
/**利用工具包对象获取屏幕分辨率*/
if (x == null) {
x = toolkit.getScreenSize().width / 2;
}
if (y == null) {
y = toolkit.getScreenSize().height / 2;
}
/**
* 移动鼠标到指定位置
* 然后按下鼠标左键,再松开,模拟单击操作
*/
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
robot.delay(100);
} catch (AWTException e) {
e.printStackTrace();
}
}