我遇到的问题与the GetItem()
的{{1}}方法有关。我能够在Windows 7和10上运行pywinauto
命令,这两个命令都是32位但它会抛出一个exeption,并且在从Windows 10 64位的python命令行调用它时不会运行。
这是我使用的完整代码:
window.TreeView.GetItem('\\Desktop').Click()
这些是我收到的错误:
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.
答案 0 :(得分:1)
这是因为Windows消息的Win32 API结构大小对于32位和64位应用程序而言是不同的。它已在UIA分支机构中修复(您可以在今年夏天等待0.6.0)。
另一种方法是在你的64位Python之外设置32位Python(和pywinauto)(你只需要关心python.exe
的完整路径)。
答案 1 :(得分:0)
尝试这个...
import pywinauto
from pywinauto import Desktop, Application
import pywinauto
app = Application(backend="uia").connect(best_match='File Explorer')
dlg = app.File_Explorer
dlg = dlg.ItemsView.get_item('Documents')
dlg.click_input(double = True)