Python 和 Windows 上的 PyWinAuto 版本安装

Python and PyWinAuto version installation on Windows

我对以下内容感到困惑:

  1. 我的 OS 是 windows 7 64 位,我尝试使用 python 自动化的应用程序是一个 32 位应用程序。现在我应该安装 Python 64 位还是 32 位?

  2. 我的应用程序是一个 windows 应用程序(不是网络),所以我正在尝试安装 PyWinAuto。静默模式下的 PyWinAuto 安装文档显示“(Python 2.7, 3.1, 3.2, 3.3, 3.4, 3.5)”。那么这意味着 PyWinAuto 仅在 Python 版本 3.5 之前受支持?

  3. 然后我安装了Python 3.5.3(64位),使用静默安装命令(pip install pywinauto)安装了PyWinAuto,但是当我试图检查我是否安装正确时按照文档中的说明启动 notepad.exe,记事本打开并在一秒钟内消失。

  4. 我希望能够使用我能够使用检查工具获取的自动化 ID 在我的应用程序的 wpf 控件上执行命令。那么这有可能使用 PyWinAuto 吗?我查看了控件,但大多数都与使用坐标等的对象控制有关。如果我有对象 ID,我可以在所有可用的控制功能中使用它吗?

首先我建议阅读 Getting Started Guide。它回答了您的许多问题并解释了核心概念。

  1. 如果您使用基于 Win32 API 的后端(Application(backend='win32') 或只是 Application()),请务必安装 32 位 Python 并使用它适用于 32 位应用程序(从 64 位 Python 你可以使应用程序崩溃)。但是对于 backend='uia' 没关系。由于您正在尝试自动化 WPF 应用程序,请按照入门指南中的说明使用 backend='uia'

  2. Pywinauto 也在 Python 3.6 上进行了自动测试。参见 AppVeyor build matrix。所以用Py3.6没问题。

  3. 请详细描述问题。你运行的代码是什么?你是从什么文件中得到的?也许它是过时的 pywinauto-0.5.4 文档?

  4. 同样,入门指南解释了如何找到 Inspect.exe(来自 Windows SDK 的间谍工具),它可以向您显示所有 WPF 控件。 Pywinauto 支持几乎所有复杂的 WPF 列表、网格等。我们有许多使用 WPF 示例应用程序的自动测试。也可以使用自动化 ID。方法 print_control_identifiers() 通常在具有此类 ID 的控件的 window 规范中显示 auto_id='<id>' 标准。