我是 pywinauto 的新手。我正在尝试使用以下代码使用中文软件:
from pywinauto.application import Application
app = Application(backend="uia").start("../../../../../software/Barometer/GT5101.exe")
dlg_spec = app.window(title=u"气压计")
actionable_dlg = dlg_spec.wait('visible')
dlg_spec['Button6'].click()
我得到了错误
--------------------------------------------------------------------------- COMError Traceback (most recent call last) Cell In[2], line 8 5 dlg_spec = app.window(title=u"气压计") 6 actionable_dlg = dlg_spec.wait('visible') ----> 8 dlg_spec['Button6'].click() File ~\anaconda3\Lib\site-packages\pywinauto\controls\uia_controls.py:121, in ButtonWrapper.click(self) 119 """Click the Button control by using Invoke or Select patterns""" 120 try: --> 121 self.invoke() 122 except NoPatternInterfaceError: 123 self.select() File ~\anaconda3\Lib\site-packages\pywinauto\controls\uiawrapper.py:513, in UIAWrapper.invoke(self) 510 name = self.element_info.name 511 control_type = self.element_info.control_type --> 513 self.iface_invoke.Invoke() 515 if name and control_type: 516 self.actions.log("Invoked " + control_type.lower() + ' "' + name + '"') COMError: (-2147220992, None, (None, None, None, 0, None))
知道发生了什么吗?
PS:如果您想重现该错误,这里是软件https://drive.google.com/file/d/1xH6ahh87GmR9utxffz40wPkqwKrX-TKZ/view?usp=sharing
使用上面的代码,我希望软件开始数据收集,但出现错误。
使用
.click_input()
。因为 .click()
是 .invoke()
的别名,但并不总是保证能正常工作,因为应用程序应该有适当的处理程序。
方法
.click_input()
应该在除锁定桌面或最小化远程桌面窗口之外的任何情况下都有效。因为 .click_input()
和 .type_keys()
就像普通用户一样在系统中生成纯鼠标和键盘事件。