package com.util;
import java.awt.AWTException;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
public class RobotUtils {
private static Robot robot = null;
static {
try {
robot = new Robot();
robot.setAutoDelay(50);
} catch (AWTException e) {
e.printStackTrace();
}
}
public static void pressKeyByStr(String str) {
for (int i = 0; i < str.length(); i++) {
// System.out.println((int)str.charAt(i));
writeString(str.charAt(i));
}
}
public static void writeString(char c) {
if (c == ':') {
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(KeyEvent.VK_SEMICOLON);
robot.keyRelease(KeyEvent.VK_SEMICOLON);
robot.keyRelease(KeyEvent.VK_SHIFT);
return;
}
if (Character.isUpperCase(c)) {
robot.keyPress(KeyEvent.VK_SHIFT);
robot.keyPress(Character.toUpperCase(c));
robot.keyRelease(Character.toUpperCase(c));
robot.keyRelease(KeyEvent.VK_SHIFT);
} else {
// 大写字母的ASCII码正对应该字母的键盘Keycode
robot.keyPress(Character.toUpperCase(c));
robot.keyRelease(Character.toUpperCase(c));
}
}
public static void winRun() {
robot.keyPress(KeyEvent.VK_WINDOWS);
robot.keyPress(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_R);
robot.keyRelease(KeyEvent.VK_WINDOWS);
}
public static void cmd() {
winRun();
pressKeyByStr("cmd");
submit();
}
public static void sleep(int sec) {
robot.delay(sec);
}
public static void ie() {
winRun();
pressKeyByStr("iexplore");
submit();
}
public static void submit() {
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
public static void pressSpaceBar() {
robot.keyPress(KeyEvent.VK_SPACE);
robot.keyRelease(KeyEvent.VK_SPACE);
}
public static void moveMouseTo(int x, int y) {
robot.mouseMove(x, y);
}
public static void moveMouseTo(Point finish) {
moveMouseTo(finish.x, finish.y);
}
public static void click(int x, int y) {
moveMouseTo(x, y);
click();
}
public static void click(Point finish) {
click(finish.x, finish.y);
}
public static void DBclick(int x, int y) {
moveMouseTo(x, y);
click();
click();
}
public static void DBclick(Point finish) {
DBclick(finish.x, finish.y);
}
public static void click() {
robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
}
public static void DBclick() {
click();
click();
}
}
selenium测试用RobotUtils
最新推荐文章于 2023-09-04 20:35:06 发布