我为网站编写自动化测试。其中一项测试需要按 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/