【问题标题】:pywinauto can it be made cross platformpywinauto可以跨平台吗
【发布时间】:2016-02-03 17:38:33
【问题描述】:

我的Python 应用程序有Windows 是客户端和服务器Linux。我的目标是使用来自Linux 服务器的pywinauto 自动化Windows GUI 应用程序。

pywinauto 可以跨平台吗?

【问题讨论】:

  • 你说“from Linux server”是什么意思?你想在 Linux 上运行自动化脚本,同时在 Windows 上执行 GUI 操作吗?
  • 问题不清楚。请添加更多详细信息,以便我们为您提供帮助。目前我正在投票结束这个问题。是的,pywinauto 将在中期成为跨平台,但 Windows 客户端应该在 Windows 上进行测试。自动化脚本的远程运行是另一个主题。 Python 脚本本身必须在 Windows 上运行,并且应该从 Linux 远程调用。
  • 答案大概就在这里:unix.stackexchange.com/questions/171331/…
  • 感谢您的回复和您共享的链接。您是正确的我想在 Windows 上执行 GUI 操作时在 Linux 上运行我的自动化脚本(类似于 Selenium / Sikuli 执行)。
  • 好的,我试图解释答案中可能的步骤。所以任务非常广泛。一些特定的子问题可以通过不同的方式解决。也许您需要就其中一些问题提出单独的问题(或找到现有的答案 - 更好)。

标签: automation pywinauto


【解决方案1】:

立即使用 pywinauto 是不可能的。但是您可以将 pywinauto 脚本复制到目标 Windows 机器并使用 Jenkins 远程运行它,例如。或任何其他 CI 服务器。主节点可以在 Linux 上。所以 Windows 节点可以作为从节点运行。但是对于 Windows slave 有几个要求(这个清单是基于我最近的经验)。

  • Windows slave 可以be set up with auto logon.
  • 应安装 VNC 服务器软件(例如 TightVNC 或 UltraVNC)。
  • 显卡驱动程序应该是最新的,以获得更好的屏幕分辨率(并防止黑屏)。
  • Jenkins 从属进程必须作为非服务运行(即在现有桌面中,因此 Jenkins 任务可以访问 GUI)。只是不要在 JNLP 代理窗口中单击菜单“作为服务运行”。
  • 不要使用来自其他 Windows 计算机的远程桌面连接(可能需要重新启动才能恢复与 VNC 客户端/服务器对的 GUI 会话)。
  • 当然,Python+pywinauto必须安装在Windows节点上。以防万一。
  • 如果在 Windows 节点上启用了 UAC,在某些情况下应该禁用它(如果您必须像 GUI 安装程序那样处理管理员访问权限)。

在 Linux 上,您需要设置 VNC 客户端和 Jenkins。对于其他 CI 服务器,步骤可能类似,但有一些不同。

【讨论】:

    猜你喜欢
    • 2011-10-21
    • 2022-07-10
    • 2011-06-12
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 2010-10-10
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多