在RFT中使用Robot类

来源:互联网 发布:聚焦网络 编辑:程序博客网 时间:2024/05/18 19:38

RFT中操纵键盘鼠标有很多种方法,例如:

调用测试对象的inputKeys方法:

http://blog.csdn.net/Testing_is_believing/archive/2010/01/17/5203586.aspx

整合AutoIt的方法:

http://blog.csdn.net/Testing_is_believing/archive/2010/01/16/5200693.aspx

 

今天又发现一种办法,采用JAVAAWT包中的Robot

 

        Robot robot;

        startApp("notepad");   

        无标题记事本window().activate();

        try {

            robot = new Robot();

            robot.keyPress(KeyEvent.VK_0);

            robot.keyRelease(KeyEvent.VK_0);

           

            无标题记事本window().activate();

            robot.keyPress(KeyEvent.VK_ALT);

            robot.keyPress(KeyEvent.VK_F4);

            robot.keyRelease(KeyEvent.VK_ALT);

            robot.keyRelease(KeyEvent.VK_F4);      

           

        } catch (AWTException e) {

            e.printStackTrace();

        }

 

查阅JDK帮助文档可以知道:

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

使用该类生成输入事件与将事件发送到 AWT 事件队列或 AWT 组件的区别在于:事件是在平台的本机输入队列中生成的。例如,Robot.mouseMove 将实际移动鼠标光标,而不是只生成鼠标移动事件。

Robot类的主要方法有:

方法摘要

 BufferedImage

createScreenCapture(Rectangle screenRect)
          
创建包含从屏幕中读取的像素的图像。

 void

delay(int ms)
          
睡眠指定的时间。

 int

getAutoDelay()
          
返回此 Robot 在生成一个事件后睡眠的毫秒数。

 Color

getPixelColor(int x, int y)
          
返回给定屏幕坐标处的像素颜色。

 boolean

isAutoWaitForIdle()
          
返回此 Robot 在生成一个事件后是否自动调用
waitForIdle

 void

keyPress(int keycode)
          
按下给定的键。

 void

keyRelease(int keycode)
          
释放给定的键。

 void

mouseMove(int x, int y)
          
将鼠标指针移动到给定屏幕坐标。

 void

mousePress(int buttons)
          
按下一个或多个鼠标按钮。

 void

mouseRelease(int buttons)
          
释放一个或多个鼠标按钮。

 void

mouseWheel(int wheelAmt)
          
在配有滚轮的鼠标上旋转滚轮。

 void

setAutoDelay(int ms)
          
设置此 Robot 在生成一个事件后睡眠的毫秒数。

 void

setAutoWaitForIdle(boolean isOn)
          
设置此 Robot 在生成一个事件后是否自动调用
waitForIdle

 String

toString()
          
返回此 Robot 的字符串表示形式。

 void

waitForIdle()
          
在处理完当前事件队列中的所有事件之前,一直等待。

 

 

RFT中使用Robot对象有点类似于在QTP中使用DeviceReply

http://blog.csdn.net/Testing_is_believing/archive/2008/03/06/2155167.aspx

 

原创粉丝点击