본문 바로가기
IT/파이썬

파이썬에서 Timeout Error 처리하기

by Augus 2018. 5. 5.
반응형

<파이썬에서 Timeout Error 처리하기>

pywinauto 를 이용한 자동화 프로그램 개발 시 초기에 아래와 같이

pywinauto.timings.TimeoutError 메시지가 나오는 경우가 있다. 

이런 경우는 자동화 시키기 위한 프로그램이 아직 Display(evoke) 되기전에

다음문장 내용(코딩문장)들이 먼저 수행 되기때문에 나오는 경우가 있다.

 

  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile

    exec(compile(contents+"\n", file, 'exec'), glob, loc)

  File "C:/Users/Lee/Documents/02 Lecture_Study/16 Python_Croll/02 Daeshin_stock/Daeshin_DB/01_ver_check_02.py", line 10, in <module>

    dlg = timings.WaitUntilPasses(20, 0.5, lambda: app.connect(title=title)).Dialog

  File "C:\Users\Lee\AppData\Roaming\Python\Python36\site-packages\pywinauto\timings.py", line 449, in wait_until_passes

    raise err

pywinauto.timings.TimeoutError

물론 다른 Error 인 경우도 있지만, 기존에 잘 수행되던 로직이 안되는 경우는 먼저 위와 같은 경우가 아닌지 확인이 필요하다.

 

반응형

해결방법은 프로그램을 로딩 한 이후의 문장에 "time.sleep(10)" 문장을 삽입하여 뒷 문장 프로그램이 로딩할 시간(필요한 시간, 예시:10초)을 확보해 주는 것이다.

 

app = application.Application()
app.start('C:/CREON/STARTER/coStarter.exe')
title = "CREON Starter"
dlg = timings.WaitUntilPasses(20, 0.5, lambda: app.connect(title=title)).Dialog
pass_ctrl = dlg.Edit2
time.sleep(10)
pass_ctrl.set_focus()
pass_ctrl.type_keys("ID")
cert_ctrl = dlg.Edit3
cert_ctrl.set_focus()
cert_ctrl.type_keys("PWD")
btn_ctrl = dlg.Button1
btn_ctrl.Click()

 

 

---------------- ---------------- ----------------

ps. 도움이 되셨으면, 구독, 좋아요 꾸욱!!! ㅎㅎ

 

 

반응형