1
저는 pywinauto를 사용하는 개인 프로젝트 용 타사 응용 프로그램을 자동화하고 있습니다. pywinauto가 대화 상자에 대해 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
다음은 Win32 응용 프로그램이 표시되지 않습니다 기존 창을 가질 수, 출력
**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") 시도 : \t if (dlg.Exists() 및 dlg.wait_not '볼', 제한 시간 = 1)) : \t \t 인쇄 ("대화가있을 수 있지만 볼 수 없습니다") 제외 : \t 인쇄 ("대화 상자가 존재 해 보이는") \t 인쇄 (traceback.print_exc()) –