gpt4 book ai didi

java - 如何在 Linux 上的 X Window 系统中找到一个窗口并将其置于最前面?

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:25 24 4
gpt4 key购买 nike

我在 Windows 上使用 Java 机器人和 User32 native 库对 Swing GUI 进行了一系列自动化用户测试。使用 User32.INSTANCE.EnumWindows 等方法,我可以找到具有特定标题的窗口,将其置于前面,然后使用击键来执行操作。我正在寻找的窗口是其他 Swing 应用程序(在单独的 JVM 中运行)、PDF 查看器或浏览器。我无法控制这些窗口。

有没有办法在 Linux 上做到这一点?

我的设置(如果有帮助的话可以更改,无论如何都会使用虚拟机):

  • Ubuntu 14.04
  • 带有 xvnc 的tightvnc 服务器
  • IceWM 窗口管理器

注意:我在 headless 服务器上运行这些测试。

所需操作:

  • 查找一个命名窗口(按标题,以确认某些内容已打开)
  • 将一个命名窗口置于最前面并聚焦于它(以执行击键)

最佳答案

根据 Etan 的建议,我安装了 wmctrl:

sudo apt-get install wmctrl

然后从Java调用它。要查找命名窗口:

wmctrl -l <title>

为了获得焦点:

wmctrl -a <title>

即使使用部分标题也能正常工作,因此我可以轻松替换为 User32 native 库编写的测试。

关于java - 如何在 Linux 上的 X Window 系统中找到一个窗口并将其置于最前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419726/

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