2

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

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

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

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

1 回答 1

2

我猜想达到预期效果的另一种方法是在嵌套的 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) 代替)

于 2013-02-26T04:33:44.003 回答