`
kuwoleft
  • 浏览: 1076362 次
文章分类
社区版块
存档分类
最新评论

在RFT中使用Robot类

 
阅读更多

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(RectanglescreenRect)
创建包含从屏幕中读取的像素的图像。

void

delay(intms)
睡眠指定的时间。

int

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

Color

getPixelColor(intx, inty)
返回给定屏幕坐标处的像素颜色。

boolean

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

void

keyPress(intkeycode)
按下给定的键。

void

keyRelease(intkeycode)
释放给定的键。

void

mouseMove(intx, inty)
将鼠标指针移动到给定屏幕坐标。

void

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

void

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

void

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

void

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

void

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

String

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

void

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

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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics