我需要编写一个程序来通过GUI编程控制Java Swing应用程序。
程序需要能够将值放在应用程序的文本字段上,然后点击“确定”按钮,就像人类如何处理这个应用程序一样。
我不熟悉Swing所以我不知道从哪里开始。我查看了几个Java Swing GUI测试工具,但它们似乎都需要启动Swing应用程序作为工具的一部分,而在我的用例中,它必须能够在不同的进程中控制已经运行的Swing应用程序。
答案 0 :(得分:4)
java awt robot类完全是为了自动化gui交互。请参阅一篇精彩的文章here。
使用机器人类,您可以通过名称/ id /位置等来定位各种gui元素,并以与用户生成的事件相同的方式与它们进行交互。
关于将ui作为工具的一部分运行 - 当然这是最简单的解决方案,但您也可以使用attach API将代码注入已经运行的JVM中。你可以编写一个java代理并将其从另一个java进程(你的自动化工具)附加到正在运行的UI应用程序中。这与调试器和分析器使用的机制相同。 javadocs
中有一些示例代码答案 1 :(得分:4)
您可能想看一下“机器人”课程和相关技巧:
答案 2 :(得分:2)
如果您只想从第二个“debug-test”应用程序生成/发送键命令,则可以使用Java类Robot
如果您想更改更多内容,可以为booth java应用程序创建RMI connection并从一个应用程序进行通信。原始应用程序是服务器,您的调试应用程序是客户端。
因此,您可以注册客户端并将命令发送到服务器。客户端可以使用服务器的java类。这些类是通过RMI提交的。所以客户端可以直接控制服务器的框架。
修改强>
您还可以使用Mouse-Click Recorder。您可以启动挥杆应用程序,启动录音机,然后在挥杆应用程序中单击/输入您想要的任何内容。
存储每一次点击。下一次在相同的屏幕位置启动挥杆应用程序时,您可以启动录制的鼠标事件,您的光标/键盘将神奇地用于填充您的挥杆应用程序。