1
我使用pywinauto为个人项目自动化第三方应用程序。 面对一个奇怪的问题,pywinauto在dialog.Exist中返回True,但对话框实际上并不可见。因此,由于代码返回True,对话框的进一步操作将失败。我相信应用程序缓存了对话框或其他东西。不知道如何处理这个。Pywinauto Windows存在但不可见
app = Application().connect(path = "D:/myapp/Trader.exe")
existFlag = app.window_(title ="Trader - 23506").Exists(timeout =2)
print existFlag #Returns True
if(existFlag):
app.window_(title ="Trader - 23506").Close() #Fails
这里是输出
**True**
Traceback (most recent call last):
File "myauto.py", line 792, in <module>
app.window_(title ="Trader - 23506").Close()
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 357, in __getattribute__
ctrls = self.__resolve_control(self.criteria)
File "C:\Python27\lib\site-packages\pywinauto\application.py", line 239, in __resolve_control
raise e.original_exception
pywinauto.findwindows.ElementNotFoundError: {'process': 12964, 'backend': u'win32', 'title': 'Trader - 23506'}
不是时间问题。但是,您的解决方法和is_visible()检查有助于解决此类问题: dlg = app.window_(title =“Trader-23506”) try: \t if(dlg.Exists()and dlg.wait_not '可见的',超时= 1)): \t \t打印( “对话框可能存在,但不可见”) 除外: \t打印( “对话已存在和可见”) \t打印(traceback.print_exc()) –