2013-09-24 3 views
3

waituntilpassespywinauto을 입력하려고하면 응용 프로그램에 새로운 창을 여는 데 걸리는 시간이 있습니다. SWAPY를 사용하여 창 세부 정보를 확인했습니다.응용 프로그램 창을 기다리는 중 : pywinauto.timings.WaitUntilPasses in Python

테스트를 위해 수동으로 하위 창을 엽니 다. 따라서 WaitUntilPasses은 즉시 확인해야하지만 그렇지 않습니다.

pywinauto.timings.WaitUntilPasses(
    20, 0.5, 
    (pywinauto.findwindows.find_windows(
     title=u'Choose template', class_name='#32770')[0] 
    ) 
) 
: 이것은 내 WaitUntilPasses 명령에 그러나 789,646

의 응답을 제공

xx = pywinauto.findwindows.find_windows(
    title=u'Choose template', class_name='#32770')[0] 
print (xx) 

: 나는 다음과 같이 찾아 find_windows의 출력을 인쇄 할 수

구문은 OK 표시

항상 시간이 초과됩니다. 구문과 관련된 문제를 볼 수 없으며 생각할 수있는 모든 순열을 시도했습니다. 팁을 주시면 감사하겠습니다.

답변

3

pywinauto.timings.WaitUntilPasses은 세 번째 매개 변수에서 함수를 대기하지만 함수 실행 값 (사용자의 경우)이 대기하지 않습니다.

pywinauto.timings.WaitUntilPasses(20, 0.5, lambda: pywinauto.findwindows.find_windows(title=u'Choose template', class_name='#32770')[0]) 

그러나 별도의 함수에서 검사를 넣으면 내가 선호 : -

수정 사항 람다 함수에 검사를 변환

def check(): 
    return pywinauto.findwindows.find_windows(title=u'Choose template', class_name='#32770')[0] 

pywinauto.timings.WaitUntilPasses(20, 0.5, check) #Important: 'check' without brackets