最小化 RDP(VM) 时自动化脚本失败

Art*_*ani 2 python selenium autoit sikuli

我一直面临在其中一台 VM 上自动执行脚本的问题。我已经自动化了保存文档的功能,理想情况下是 Windows 设计的 UI。我曾尝试使用各种技术/工具,如 AutoIT、Python、Sikuli,但如果 VM 最小化,脚本就会停止。当 VM 通过 RDP 打开并且我可以看到运行时执行时,它工作得非常好。但是如果我最小化 RDP,脚本会在“另存为”对话框中停止,发送键 (Cntrl+s) 或 (Enter) 都不会通过 AutoIt 脚本工作。请帮助提供一些解决方案,以便即使在最小化模式下也能成功执行脚本。

qua*_*ant 5

脚本在最小化的 RDP 会话上执行时失败的原因很简单。GUI 自动化/测试工具需要有一个未锁定的、活动的桌面 - 否则操作系统认为它不需要实际渲染 GUI 操作(这很耗时),因为无论如何没有用户可以看到渲染的图形用户界面. 并且程序通常不会通过 GUI 进行通信......

这就是为什么 QF-Test 和其他 GUI 自动化/测试工具在他们的常见问题解答中经常有一个注释来描述这种问题。例如 QF-Test 的 FAQ 14,参见https://www.qfs.de/qf-test-handbuch/lc/manual-en-faq.html

如 Windows 10 或 Windows Server 2016 上的常见问题解答 14 中所述,如果使用 RDP 连接,您需要修改注册表。去

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client
Run Code Online (Sandbox Code Playgroud)

并添加一个新值

RemoteDesktop_SuppressWhenMinimized as DWORD having the value 2
Run Code Online (Sandbox Code Playgroud)

重新启动后,您将能够最小化 RDP 连接。然而,断开或关闭 RDP 连接可能仍会导致失败。