2014-04-30 3 views
0

저는 생물 학자와 새로운 pywinauto에 pywinauto를 사용하여 HYPHY 응용 프로그램에서 입력 파일을 열려면 코드를 작성했습니다. 명령 행에서 코드를 한 줄씩 실행하면 제대로 작동하지만 실행하면 코드를 배치 파일로 사용하면 다음 오류가 발생합니다.pywinauto 배치 파일 실행 오류

Traceback (most recent call last): 
File "C:\Users\Masyh\Desktop\autowin_test.py", line 8, in <module> 
w_handle = pywinauto.findwindows.find_windows(title=u' Please select a batch file to run:', class_name='#32770')[0] 
IndexError: list index out of range 

코드는 다음과 같습니다

import pywinauto 

pwa_app = pywinauto.application.Application() 
w_handle = pywinauto.findwindows.find_windows(title=u'HYPHY Console', class_name='HYPHY')[0] 
window = pwa_app.window_(handle=w_handle) 
window.SetFocus() 
window.MenuItem(u'&File->&Open->Open &Batch File\tCtrl+O').Click() 
w_handle = pywinauto.findwindows.find_windows(title=u' Please select a batch file to run:',  class_name='#32770')[0] 
window = pwa_app.window_(handle=w_handle) 
window.SetFocus() 

ctrl = window['Edit'] 
ctrl.Click() 
ctrl.TypeKeys('brown.nuc') 
ctrl=window['&open'] 
ctrl.Click() 

내가 문제가 입력 얻는다 창 (# '은 배치 파일 MENUE을 선택하십시오') 것으로 추측되어 있지 시작과 처음 열려 코드의 일부가 열리지 만 파이썬은 처음부터 찾아서 찾을 수 없습니다. 이 문제를 해결하는 방법에 대해 정말 감사드립니다.

답변

1

검사를 수행 할 때 창이 존재하지 않는 것처럼 보입니다. 창이 열리려면 잠시 기다려야합니다. 다음 건설을 시도 : 또한, 문제가 창으로 인해 발생할 수 있습니다

a_check = lambda: pywinauto.findwindows.find_windows(title=u' Please select a batch file to run:',  class_name='#32770')[0] 
try: 
    w_handle = pywinauto.timings.WaitUntilPasses(timeout=10, retry_interval=1, a_check) 
except: 
    print('Something went wrong') 

여분의 속성/상태를 가지고있다. 예를 들어, 가식 성.

pywinauto.findwindows.find_windows(class_name=None,class_name_re=None, parent=None, process=None, title=None, title_re=None, top_level_only=True, visible_only=True, enabled_only=False, best_match=None, handle=None, ctrl_index=None, predicate_func=None, active_only=False, control_id=None) 
+0

잘 설명 멋지게 일 : 사용 find_windows에서 argumens는 경우,가 기본으로 값이 여기에 인수 목록을 처리 할 수 ​​있었다. 감사합니다. – user3015703