Java AWT Robot - 如何读取项目文本/标签?

Posted

技术标签:

【中文标题】Java AWT Robot - 如何读取项目文本/标签?【英文标题】:Java AWT Robot - how to read item text / label? 【发布时间】:2021-01-14 01:39:06 【问题描述】:

我需要从弹出窗口中选择适当的选项。不幸的是,它不是网页显示的弹出窗口,所以我不能为此目的使用 Selenium 框架。

正如我所检查的,可以通过按箭头键导航到不同的选项。因此,来自 Java AWT Robot 的 keyPresskeyRelease​ 应该非常适合我选择选项并按 Enter 键确认选择。

不幸的是,我没有看到读取当前选定项目文本的方法。没有它,我找不到合适的选择。是否可以使用 Java AWT Robot 读取项目标签?

【问题讨论】:

【参考方案1】:

如果目标应用程序是另一个 java 应用程序,那么您应该能够获取对组件层次结构的引用并遍历它,直到找到有问题的文本字段和标签。

假设它不是一个 java 应用程序,那么我不相信有可能做到这一点 - 至少直接这样做。 Robot 仅提供鼠标/键盘输入,但您可以将其与工具包中的其他类结合使用,至少可以部分解决您的问题。

使用Robot方法keyPresskeyRelease输入CTRL-A。然后 CTRL-C.

文本进入剪贴板后,您可以使用Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor)阅读它

可能可以对文本标签使用相同的方法,假设它是可选择的。

这个问题是关于使用 java.awt.Robot 来更改另一个程序(MS excel)中的文本,但它可能会为您提供一些解决问题的额外想法:

How can I select text in another application with java.awt.robot (example: shift+home)

【讨论】:

以上是关于Java AWT Robot - 如何读取项目文本/标签?的主要内容,如果未能解决你的问题,请参考以下文章

java.awt.AWTException:java.awt.Robot.(Robot.java:94) 的无头环境 [重复]

Java读取并修改图片的像素值

除了使用 java.awt Robot 类之外,如何在 Selenium/Java 中退出全屏(Chrome)?

使用 java.awt.Robot 模拟退格键

Java.awt.robot mousepress 没有任何效果

Java关于Robot类的使用以及远程桌面的实现