一.概述

​ Java中Robot类位于java.awt.Robot,该类用于为测试自动化,自运行演示程序和其他需要控制鼠标和键盘的应用程序生成本机系统输入事件,Robot类的主要目的是便于Java平台实现自动测试

二.基本API

方法名 使用说明
delay(n) 延迟电脑操作n毫秒,类似于Thread.sleep()
keyPress() 模拟手动按下电脑键盘上的某个键
keyRelease() 模拟手动松开电脑键盘上的某个键(与keyPress()对应,按下一个键必须松开这个键)
mouseMove(x,y) 将鼠标移动到指定的x,y位置
mousePress() 按下鼠标上的某个键
mouseRelease() 松开鼠标上的某个键
getPixelColor(x,y) 获取指定坐标处的像素颜色
mouseWheel(int wheelAmt) 鼠标滚动(参数小于0,表示向上滚动;参数大于0,表示向下滚动)

三.基本使用

1.模拟按键

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.awt.*;
import java.awt.event.KeyEvent;
import java.util.Random;

public class Test {
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
//延时函数,延时5秒
robot.delay(5000);
//模拟按一下K键
robot.keyPress(KeyEvent.VK_K);
//产生一个随机的时间(0.2 ~ 0.4秒之间)
Random random = new Random();
double randomValue = random.nextDouble() * 0.2 + 0.2;
robot.delay((int)randomValue * 1000);
//释放k键
robot.keyRelease(KeyEvent.VK_K);
}
}

2.模拟鼠标

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.awt.*;
import java.awt.event.InputEvent;

public class Test {
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
//鼠标的移动
robot.mouseMove(800, 200);
//按下左键
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
//弹起左键
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
//鼠标滚轮(大于1 向上滚动)
robot.mouseWheel(1);
}
}

3.获取颜色

1
2
3
4
5
6
7
8
import java.awt.*;

public class Test {
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
Color color = robot.getPixelColor(520, 70);
}
}