zoukankan      html  css  js  c++  java
  • java GUI 测试

    简介

    模拟机器人操作测试GUI

    code

    /*
     * @Author: your name
     * @Date: 2020-11-08 18:22:54
     * @LastEditTime: 2020-11-08 18:38:31
     * @LastEditors: Please set LastEditors
     * @Description: In User Settings Edit
     * @FilePath: /java/calcu/RobotTest.java
     */
    package calcu;
    
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.image.*;
    import javax.swing.*;
    
    public class RobotTest {
        public static void main(String[] args) {
            EventQueue.invokeLater(() -> {
                ButtonFrame frame = new ButtonFrame();
                frame.setTitle("ButtonTest");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            });
    
            GraphicsEnvironment environment = GraphicsEnvironment.getLocalGraphicsEnvironment();
            GraphicsDevice screen = environment.getDefaultScreenDevice();
    
            try {
                final Robot robot = new Robot(screen);
                robot.waitForIdle();
                new Thread() {
                    public void run() {
                        runTest(robot);
                    }
                }.start();
            } catch (AWTException e) {
                e.printStackTrace();
            }
        }
    
        public static void runTest(Robot robot) {
            robot.keyPress(' ');
            robot.keyRelease(' ');
    
            // simulate a tab key followed by a space
            robot.delay(1000);
            robot.keyPress(KeyEvent.VK_TAB);
            robot.keyRelease(KeyEvent.VK_TAB);
            robot.keyPress(' ');
            robot.keyRelease(' ');
            System.out.println("yellow over");
            // simulate a mouse click over the rightmost button
            robot.delay(1000);
            robot.mouseMove(220, 40);
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
            System.out.println("mid over");
            robot.delay(1000);
            BufferedImage image = robot.createScreenCapture(new Rectangle(0, 0, 400, 300));
            ImageFrame frame = new ImageFrame(image);
            frame.setVisible(true);
        }
    }
    
    class ImageFrame extends JFrame {
        private static final int DEFAULT_WIDTH = 450;
        private static final int DEFAULT_HEIGHT = 350;
    
        public ImageFrame(Image image) {
            setTitle("Capture");
            setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
    
            JLabel label = new JLabel(new ImageIcon(image));
            add(label);
        }
    }
    
    
    Hope is a good thing,maybe the best of things,and no good thing ever dies.----------- Andy Dufresne
  • 相关阅读:
    react结合antd4.0和umi3.0的404界面
    小程序自带组件自定义tabbar
    移动安全学习清单
    跨域资源共享 CORS 详解(转)
    docker常用命令总结
    XSS绕过小结
    mysql的order by注入
    本地文件包含漏洞利用姿势
    XSS绕过<>进行测试
    clamscan+clam-freshclam.service服务启停
  • 原文地址:https://www.cnblogs.com/eat-too-much/p/13945259.html
Copyright © 2011-2022 走看看