我对以下内容感到困惑:
我的操作系统是Windows 7 64位,我试图使用python自动化的应用程序是一个32位应用程序。我现在应该安装Python 64位还是32位?
我的应用程序是一个Windows应用程序(而不是Web),所以我正在尝试安装PyWinAuto。静默模式下的PyWinAuto安装文档说"(Python 2.7,3.1,3.2,3.3,3.4,3.5)"。所以这意味着PyWinAuto只支持Python 3.5版本?
然后我安装了Python 3.5.3(64位),使用静默安装命令(pip install pywinauto)安装了PyWinAuto,但当我尝试通过启动notepad.exe来检查我是否已正确安装文件,记事本刚刚打开,一秒钟就消失了。
我希望能够使用自动化ID在我的应用程序的wpf控件上执行命令,我可以使用inspect工具获取它。这可能是使用PyWinAuto吗?我查看了控件,但大多数都与使用坐标等控制对象有关。如果我有对象ID,我可以在所有可用的控制功能中使用它吗?
答案 0 :(得分:0)
首先,我建议您阅读Getting Started Guide。它回答了你的许多问题并解释了核心概念。
如果您使用基于Win32 API的后端(Application(backend='win32')
或Application()
),那么安装32位Python并将其用于32位应用程序(从64位Python)非常重要你可以崩溃应用程序)。但对backend='uia'
而言并不重要。由于您尝试自动化WPF应用程序,请按照“入门指南”中的说明使用backend='uia'
。
Pywinauto也在Python 3.6上进行了自动测试。见AppVeyor build matrix。所以使用Py3.6没问题。
请详细说明问题。你运行的代码是什么?你从哪个文件中得到它?也许它已经过时了pywinauto-0.5.4 docs?
同样,“入门指南”解释了如何查找可以显示所有WPF控件的Inspect.exe
(来自Windows SDK的间谍工具)。 Pywinauto支持几乎所有复杂的WPF列表,网格等。我们使用WPF示例应用程序进行了许多自动测试。也可以使用自动化ID。方法print_control_identifiers()
经常在具有此类ID的控件的窗口规范中显示auto_id='<id>'
条件。