【发布时间】:2016-06-29 10:29:26
【问题描述】:
我遇到的问题与pywinauto 中的the GetItem() 方法有关。我能够在 32 位的 Windows 7 和 10 上运行 window.TreeView.GetItem('\\Desktop').Click() 命令,但它会引发异常并且在从 Windows 10 64 位的 python 命令行调用它时不会运行。
这是我使用的完整代码:
import pywinauto
pwa_app = pywinauto.application.Application()
w_handle = pywinauto.findwindows.find_windows(title=u'Browse For Folder', class_name='#32770')[0]
window = pwa_app.window_(handle=w_handle)
window.TreeView.GetItem('\\Desktop').Click()
这些是我收到的错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1374, in GetItem
texts = [r.Text() for r in roots]
File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 872, in Text
return self._readitem()
File "C:\Python27\lib\site-packages\pywinauto\controls\common_controls.py", line 1263, in _readitem
raise ctypes.WinError()
WindowsError: [Error 0] The operation completed successfully.
不得不提的是,我只能通过window.TreeView.GetItem([0]).Click()访问树视图的根
【问题讨论】:
-
你是否使用 64 位 Python 和 32 位应用程序?
-
是的,Python 是 64 位的,而应用程序是 32 位的。谢谢
-
您可以尝试 pywinauto 的 UIA 分支或使用 32 位 Python 和 pywinauto 0.5.4。
-
谢谢先生。现在,我想我会坚持在运行良好的 Windows 10 32 位中运行命令。
标签: python python-2.7 pywinauto