java.awt.Robot 提供模拟点击,模拟用户输入等操作
引入
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
键盘操作
- 按下按键
/**
* 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();
}
}
- 组合键
//先按下control再按下其它,松开其它再松开control
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(keycode);
robot.keyRelease(keycode);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.delay(100);
鼠标操作
- 点击
/**
* 模拟用户单击屏幕指定区域,默认单击屏幕最中央
*
* @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();
}
}
- 移动鼠标
/**
* 自动将鼠标移动到指定的位置
* 如果参数x与y为null,则默认将鼠标放在屏幕右侧中间隐藏
*
* @param x:x坐标 ,左上角 为0----设定值超过屏幕分辨率也没关系
* @param y:y坐标 ,左上角 为0----设定值超过屏幕分辨率也没关系
*/
public static final void mouseMoveToXY(Integer x, Integer y) {
try {
/**创建工具包对象*/
Toolkit toolkit = Toolkit.getDefaultToolkit();
/**创建自动化对象*/
Robot robot = new Robot();
/**利用工具包对象获取屏幕分辨率*/
if (x == null) {
x = toolkit.getScreenSize().width;
}
if (y == null) {
y = toolkit.getScreenSize().height / 2;
}
/**
* 移动鼠标到指定位置
* robot.delay(100);延时100毫秒
*/
robot.mouseMove(x, y);
robot.delay(100);
} catch (AWTException e) {
e.printStackTrace();
}
}
常用按键
按键都在 KeyEvent类中,和键盘对应