Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java.awt.Robot测试键盘输入_Java_Swing_Awtrobot - Fatal编程技术网

用java.awt.Robot测试键盘输入

用java.awt.Robot测试键盘输入,java,swing,awtrobot,Java,Swing,Awtrobot,我有一个使用java.awt.Robot测试定制Swing组件的测试。我想在我们的构建服务器上运行测试,但是构建服务器在锁定的windows机器上运行,Robot.keyPress(char)不能在屏幕锁定的情况下工作。我发送的击键有时是向下箭头和退格,因此直接将它们发送到文档没有帮助 目前,如果键盘输入在第一次尝试时不起作用,我只是使用junit的Aspect跳过测试,但是我想让这些测试保持启用状态。我假设有人正在对Swing gui运行这些类型的测试。有什么想法吗?暗中捅一刀:也许虚拟机(如

我有一个使用java.awt.Robot测试定制Swing组件的测试。我想在我们的构建服务器上运行测试,但是构建服务器在锁定的windows机器上运行,Robot.keyPress(char)不能在屏幕锁定的情况下工作。我发送的击键有时是向下箭头和退格,因此直接将它们发送到文档没有帮助


目前,如果键盘输入在第一次尝试时不起作用,我只是使用junit的Aspect跳过测试,但是我想让这些测试保持启用状态。我假设有人正在对Swing gui运行这些类型的测试。有什么想法吗?

暗中捅一刀:也许虚拟机(如VirtualBox)可以在后台运行,但就所有意图和目的而言,就机器人所知,它是“唤醒并解锁”的。虚拟机将运行您的单元测试。

您尝试过使用java模式吗?
我猜java.awt.Robot在这种情况下不起作用,因为它具体取决于加载的awt。在这种情况下,最好依赖gui测试框架,如cool(并在无头模式下运行)。

如果在无头模式下启动,Robot会抛出异常。我用过fest,但它也依赖于机器人。我从来没有试过让fest在持续集成服务器上玩得很好,但我想我会遇到同样的问题。哦,该死,你说得对。。。我记得在这样做的时候,我们像推荐的那样,提供了一个可用的AWT gui,而不依赖于物理屏幕。这对于自动化集成测试来说是一个非常酷的想法。不幸的是,我无法控制我们的构建环境,即使我控制了,修复这一个测试也太过分了。