我为网站编写自动化测试。其中一个测试需要按 Ctrl + S 并输入一些字母以保存包含CSS / JS的网页。测试应该要求Firefox有几秒钟的窗口焦点才能输入文件名并单击“保存”(当前XDoTool用于按键并单击鼠标)。
有时我在电脑上运行测试。在保存页面时,我不想偶尔输入内容或更改窗口焦点,所以我想禁止在那些鼠标点击/按键操作正在运行的那几秒内更改焦点。
在Webdriver级别(我用来控制浏览器的工具)不可能这样做,所以我想我应该在操作系统级别这样做。我可以禁止用户更改窗口焦点或在一段时间内键入任何内容吗?它可能看起来像:
prohibit user from typing keys/change window focus
save page
allow user to type/change window focus
答案 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))