1

我有一个测试 FEST 应用程序,它使用 AWT 机器人在 Swing 界面上模拟某些动作。我的问题是,在机器人测试执行期间移动鼠标指针似乎会取消一些编程操作,比如按下列标题。如果您在执行过程中没有触摸任何东西,那么光标将单独移动到目标并击中它。

在测试完成之前,有没有办法阻止该应用程序的鼠标用户输入?

当然,也许不是一个障碍,而是一种忽略事件、强制 EDT 完成或屏蔽机器人的方法

4

2 回答 2

1

也许您可以使用本机终端命令禁用键盘和鼠标。即 Windows 的 cmd.exe 和 Linux 的终端(取决于应用程序是否必须是可移植的,只需检查操作系统名称,然后运行正确的命令)但是我不确定这是否会使Robot无用。我认为不是。

视窗:

cmd.exe /c %Homedrive%\windows\rundll32.exe 鼠标,禁用

cmd.exe /c %Homedrive%\windows\rundll32.exe 键盘,禁用

对于 Linux,请参见此处

附录

据我所知,如果不使用 JNI 禁用用户的键盘和鼠标输入,纯 Java 是不可能的。

这是在 Java 中使用 JNI 禁用鼠标和键盘的一个很好的链接:Java Global Keyboard / Mouse Hook - JNI

于 2012-07-30T19:41:21.943 回答
0

If you are hardy to evolve with end-to-end tests using AWT robot, then try to separate tests to able to run only part that checks touched functionality while all bunch of end-to-end tests should run on build server.

Here is result of end-to-end testing by AWT robot for Swing application that completes on head-less build-server: http://travis-ci.org/#!/plokhotnyuk/calculator/jobs/1979904/L538

于 2012-07-30T19:55:15.503 回答