linux - 如何在 Linux 上禁止用户在几秒钟内更改操作系统窗口焦点/键入键

标签 linux ubuntu focus x11 xdotool

我为网站编写自动化测试。其中一项测试需要按 Ctrl+S 并输入一些字母来保存包含 CSS/JS 的网页。测试应要求 Firefox 保持窗口焦点几秒钟,以便能够键入文件名并单击“保存”(当前 XDoTool 用于按键和单击鼠标)。

有时我会在我的计算机上运行测试。我不想在保存页面时偶尔键入一些内容或更改窗口焦点,因此我想在运行这些鼠标单击/按键时禁止更改焦点几秒钟。

不可能在 Webdriver 级别(我用来控制浏览器的工具)执行此操作,因此我认为我应该在操作系统级别执行此操作。我可以禁止用户在一段时间内改变窗口焦点或输入任何内容吗?它可能看起来像:

prohibit user from typing keys/change window focus
save page
allow user to type/change window focus

最佳答案

我猜想达到预期效果的另一种方法是在嵌套的 X 服务器 (xf86-video-nested/Xephyr/Xnest) 上运行 Firefox 和自动化测试。

$ Xnest :1
$ export DISPLAY=:1.0
$ firefox http://something/to/test &
$ your-test-script

由于嵌套 X 服务器有自己的焦点窗口概念,因此将焦点移到桌面上不会影响它。

(如果您实际上不需要查看测试进度,您可以使用虚拟 X 服务器 (xf86-video-dummy/Xvfb/Xfake) 代替)

关于linux - 如何在 Linux 上禁止用户在几秒钟内更改操作系统窗口焦点/键入键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14979465/

相关文章:

java - Key Listener 继续关注 Java 游戏

Python 脚本无法访问 Docker 镜像中的 .jar 文件

bash - 多个文件搜索上的 Grep 颜色

bash - 在 Ubuntu 中使用 Bash 每小时重启一次网络设备

c++ - 键盘制表符停止在 Windows GUI 上工作

带有复选框和所有可点击的 Android ListView

linux - 如何使用 yocto 配方在目标板上设置环境变量?

linux - 获取 ssh 命令的修剪输出

linux - .bash_aliases 中的 ls 别名干扰 egrep 输出

linux - 在 Ubuntu 16.04 中安装 Vim 时出错