如何在Linux上禁止用户在几秒钟内更改OS窗口焦点/类型键

时间:2013-02-20 12:05:54

标签: 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

1 个答案:

答案 0 :(得分:2)

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

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

由于嵌套的X服务器对聚焦窗口有自己的想法,因此将焦点移到桌面上不应影响它。

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