java自动化测试

java.awt.Robot 提供模拟点击,模拟用户输入等操作

引入

import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

键盘操作

  1. 按下按键
/**
 * 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();
    }
}
  1. 组合键
//先按下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);

鼠标操作

  1. 点击

/**
 * 模拟用户单击屏幕指定区域,默认单击屏幕最中央
 *
 * @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();
    }
}
  1. 移动鼠标

/**
 * 自动将鼠标移动到指定的位置
 * 如果参数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类中,和键盘对应

你可能感兴趣的:(java自动化测试)