1

我需要编写一个程序来通过它是 GUI 以编程方式控制 Java Swing 应用程序。

该程序需要能够将值放在应用程序的文本字段中,然后单击“确定”按钮,就像人类可以使用此应用程序一样。

我不熟悉 Swing,所以我不知道从哪里开始。我查看了一些 Java Swing GUI 测试工具,但它们似乎都需要启动 Swing 应用程序作为工具的一部分,而在我的用例中,它必须能够在不同的进程中控制已经运行的 Swing 应用程序。

4

3 回答 3

5

java awt 机器人类正是用于自动化 gui 交互。在这里看到一篇不错的介绍文章。

使用机器人类,您可以通过名称/id/position/whatever 来定位各种 gui 元素,并以与用户生成的事件相同的方式与它们交互。

关于将 ui 作为工具的一部分运行 - 当然这是最简单的解决方案,但您也可以使用附加 API将代码注入到已经运行的 JVM 中。您可以编写一个 java 代理并将其从另一个 java 进程(您的自动化工具)附加到正在运行的 UI 应用程序中。这与调试器和分析器使用的机制相同。javadocs中有一些示例代码

于 2013-03-06T10:21:53.230 回答
4

您可能想看看“机器人”类和相关技术:

于 2013-03-06T10:22:04.633 回答
2

如果您只想从第二个“调试测试”应用程序生成/发送关键命令,您可以使用 Java 类Robot

如果您想进行更多更改,您可以为 Booth Java 应用程序创建一个RMI 连接,并从一个到另一个进行通信。原始应用程序是服务器,您的调试应用程序是客户端。

因此,您可以注册客户端并向服务器发送命令。客户端可以使用服务器的 java 类。课程通过 RMI 提交。所以客户端可以直接控制服务器的框架。

编辑:

您也可以使用Mouse-Click Recorder。您可以启动您的摇摆应用程序,启动记录器并单击/键入您想要的任何内容到您的摇摆应用程序中。

每一次点击都会被存储。下次在同一屏幕位置启动摇摆应用程序时,您可以启动录制的鼠标事件,您的光标/键盘将神奇地用于填充您的摇摆应用程序。

于 2013-03-06T10:22:57.957 回答