gpt4 book ai didi

java - 与可执行 JAR 交互以操作 Swing GUI

转载 作者:行者123 更新时间:2023-12-02 00:47:39 28 4
gpt4 key购买 nike

我有一个可执行的 JAR,它会打开一个 Swing GUI,在选择框等中进行一些选择并按下“确定”按钮后,运行一个进程。我希望自动化做出这些选择和运行流程的行为。

我无权访问源代码或任何文档,所以在我看来,唯一的方法就是以某种方式连接到 GUI 并模拟用户。最坏的情况是使用 java.awt.Robot 实际操作光标以进行所需的更改,但这非常困惑且容易出错。有没有更好的方法与 GUI 交互?

最佳答案

在这个答案中,我假设您可以将 jar 加载到您自己的 main() 中并调用它们的 GUI 入口类。

Swing(如 AWT)让您可以轻松地审视 GUI。 GUI 可能是一棵由面板和子项组成的树。一旦您递归遍历树并找到您想要调用的小部件(这是困难的部分),您只需以编程方式单击按钮等即可。

[偏离正线...]我经常使用这种技术对我自己的 GUI 进行单元测试。我确保在计划内省(introspection)的组件上调用“setName()”,并通过 UI 进行深度优先递归,直到“getName()”产生我正在寻找的字符串。这让我可以重构 GUI,而无需对测试框架进行太多更改。同样的概念通常也适用于使用第三方 GUI,但可惜的是,他们很少使用 setName(),因此识别组件可能会更困难 - 您需要查看按钮文本等。

关于java - 与可执行 JAR 交互以操作 Swing GUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4481423/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com