Java awt.Robot无法在虚拟机内部工作?

时间:2014-03-18 16:46:58

标签: java virtual-machine awtrobot

我试图使用java.awt.Robot类在虚拟机内进行测试。如果我在我的主机上测试它,一切都按预期工作,但是当我在虚拟机中运行相同的程序时,没有任何反应,也没有错误/异常。我尝试在不同的计算机上运行Windows XP或Windows 7的内部虚拟机,但从未运行过。

我在机器上测试的代码非常简单:

try 
{
    final Robot robot = new Robot();
    robot.mouseMove(500, 500);
} 
catch (AWTException e) 
{
    e.printStackTrace();
}

当我运行它时,程序刚刚结束,鼠标不动。机器人类是否在虚拟机中不起作用?如果它没有,是否有另一种模拟鼠标移动/点击的方法?您是否曾尝试在虚拟机中使用此类,如果它有效,您的设置是什么?

2 个答案:

答案 0 :(得分:0)

IT无法运作...我们遇到的类似问题...当您在笔记本电脑/台式机上打开虚拟机时,您的测试脚本将会通过。

尝试此操作...开始测试并关闭VNC / RDC,然后检查结果(失败)。

原因是......这个Robot类正在寻找物理键盘,但是当我们在CI上运行测试套件时,我们没有物理键盘......

所以它不会工作。

替代解决方案:使用Selenium方法

答案 1 :(得分:0)

也许它不起作用,因为您已经在计算机中安装了来宾添加。我使用的是VirtualBox,当我卸载Guest Additions程序(在虚拟机控制面板内部)时,问题已解决,并且鼠标可以像在主机上进行的测试一样移动。希望对您有帮助。它对我有用。