有没有像 Windows 的 xvfb 或 xnest 之类的东西? [关闭]

Posted

技术标签:

【中文标题】有没有像 Windows 的 xvfb 或 xnest 之类的东西? [关闭]【英文标题】:Is there anything like xvfb or xnest for Windows? [closed] 【发布时间】:2010-10-30 22:54:06 【问题描述】:

在具有驱动 GUI 的端到端测试的项目中,在开发人员工作站上运行测试很尴尬,因为 GUI 自动化驱动程序会干扰桌面。它会移动鼠标,将注意力从我们想要使用的应用程序上转移开,并且如果我们在测试运行期间切换到另一个应用程序,它可能会开始在错误的应用程序中输入文本。

在 Linux 上,我们通过在虚拟 X 服务器(xvfb 或 xnest)上运行被测应用程序解决了这个问题。使用 xnest,我们可以观看测试运行,但仍然可以不受干扰地使用真实桌面。

Windows 有什么等效的吗?

【问题讨论】:

【参考方案1】:

您可以使用 SysInternals 包中的“Desktops”应用程序。在一个桌面上运行 UI 测试并在另一个桌面上工作。

【讨论】:

不幸的是,我认为这行不通。我想要的是从 IDE(在我的主桌面上运行)生成一个进程,并让该进程的窗口出现在屏幕外桌面上。这不是“桌面”的工作方式。 我遇到了同样的问题,这个解决方案对我有用。您可以直接从“隐藏”桌面生成您的进程并让它在那里工作并切换回您的主桌面,感谢 Yauheni Sivukha 提供此解决方案 这真的解决了最初的问题,其中一个问题是自动化驱动程序移动鼠标?然后在不同的桌面上必须有单独的鼠标指针/输入。 这对视觉需求很有好处。但它没有单独的音源,所有的声音都组合在一起同时播放!【参考方案2】:

我发现了一个名为“RunProcess.exe”的免费软件程序,由 Frank P. Westlake 编写,它可以运行绑定到非交互式(例如屏幕外)WindowStation 桌面的进程。但是,没有来源。

因此,我使用 Java 和 JNA 实现了我自己的版本(比 Frank Westlake 的简单)。它位于工具模块的Window Licker 存储库中。该类称为com.objogate.wl.win32.RunOnDesktop。在某些时候,我可能会将其移植到 C 并使其成为普通的命令行 .exe,或者将其转换为 Ant 任务以在屏幕外运行测试。

【讨论】:

有人幸运地使用了这个吗? 我正在尝试为同一问题找到解决方案。其他人试过吗? 在屏幕外操作时键盘和鼠标问题如何@Nat? Window licker 的链接已损坏【参考方案3】:

我刚刚在我的 Windows 10 机器上尝试了多桌面方法。我正在运行 Selenium javascript 测试。我在另一个桌面上开始测试并等待它打开浏览器,然后切换回我的主桌面。但是在 Chrome 浏览器成为活动窗口的同时,它实际上迫使我回到那个桌面:-(

我想我会试试 RunProcess.exe,或者 Nat 的解决方案。

【讨论】:

我刚刚尝试了 Sysinternals Desktops 工具technet.microsoft.com/en-us/sysinternals/cc817881.aspx,它对我来说工作正常。当我在另一个桌面上启动测试时,我的原始桌面没有交互:-)

以上是关于有没有像 Windows 的 xvfb 或 xnest 之类的东西? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的 Xvfb

无法在无头模式下运行 Firefox

travis:sh:0:无法打开/etc/init.d/xvfb

Google ChromeDriver 无法在 EC2 服务器的 xvfb 中运行,一旦调用 sendkeys() 就会出错

Centos6.5 安装虚拟图形环境Xvfb及chrome

[在使用 PyVirtualDisplay 时] 如何避免挂起 Xvfb 进程?