我有一个测试FEST应用程序,它使用AWT机器人模拟Swing界面上的某些操作。我的问题是,在机器人测试执行期间移动鼠标指针似乎取消了一些编程操作,比如按下列标题。如果你在执行过程中没有碰到任何东西,那么光标会单独移动到目标并点击它。
在测试完成之前,有没有办法阻止该应用的鼠标用户输入?
也许不是一个块而是一种忽略事件的方法,强制EDT完成或屏蔽机器人当然会受到赞赏
答案 0 :(得分:1)
也许您可以使用本机终端命令禁用键盘和鼠标。用于Windows的cmd.exe和用于Linux的终端(取决于应用程序是否必须只是check os name可移植,然后运行正确的命令)但是我不确定这是否会使Robot
无用。我想不是。
视窗:
cmd.exe / c%Homedrive%\ windows \ rundll32.exe鼠标,禁用
cmd.exe / c%Homedrive%\ windows \ rundll32.exe键盘,禁用
对于Linux,请参阅here
<强>附录强>:
据我所知,在没有使用JNI禁用用户的键盘和鼠标输入的情况下,纯Java是不可能的。
以下是在Java中使用JNI的鼠标和键盘的强大链接:Java Global Keyboard / Mouse Hook - JNI
答案 1 :(得分:0)
如果您很难使用AWT机器人进行端到端测试,那么尝试将测试分开,只能运行检查触摸功能的部分,而所有端到端测试都应该在构建服务器上运行
以下是AWT机器人对无头构建服务器上完成的Swing应用程序进行端到端测试的结果: http://travis-ci.org/#!/plokhotnyuk/calculator/jobs/1979904/L538