본문 바로가기
Work/개발

Pywinauto로 파일 업로드 자동화 하기 - 3.프로그램 호출해서 Dialog 만들기

by 라리올리 2021. 7. 1.
반응형

 

업로드 자동화 프로그램 시나리오는 아래 글을 참고하세요.

 

Pywinauto로 파일 업로드 자동화 하기 - 1. 시나리오 만들기

자동화 프로그램을 만들기 위해선 우선 어떤 업무를 자동화 시킬지 그 대상을 정해야 합니다. 기계적으로 반복적인 일이 주로 대상이 될 것이며, 다른 사람들도 그 업무를 하고 있다면 프로그램

lariola.tistory.com

 

우선, 자동화 프로그램의 Flow를 설명하자면 아래와 같습니다.

 

1. 프로그램을 호출하기 위한 path를 선언 해 주고 (나는 설치되어 있는 경로를 선언 해 주었다.)

2. Application start 명령어를 통해서 실행 시킨다. 

3. 해당 윈도우 창을 변수로 선언하고,

4. 그 창 안에서 발생되어야 하는 Action들을 선언 해 준다.

호출 될 프로그램 FileZilla

구현된 소스는 아래와 같습니다. (심플하죠?)

path = 'C:\Program Files (x86)\FileZilla\FileZilla.exe' # 경로 선언
app = Application(backend="uia").start(path) # 해당 패스 프로그램 실행
dialog = app.window() # 실행된 프로그램 window 창을 받는다

반응형

1. Application backend는 win32와 uia 두가지가 있습니다. 가이드 문서를 보면 아래와 같이 정의하고 있습니다.

 

Win32 API (backend="win32") - a default backend for now
         - MFC, VB6, VCL, simple WinForms controls and most of the old legacy apps

MS UI Automation (backend="uia")        
         - WinForms, WPF, Store apps, Qt5, browsers

 

대충 오래된(원래 있던) 어플리케이션은 win32을 사용하고, 그 외는 uia 로 사용하는것 같습니다.

잘 모르면 둘 중 하나로 선언하고 돌려봐서 에러 안나는 걸로 사용 하면 될 것 같습니다.

 

2. app.window() 는 호출된 어플리케이션의 window 창을 받는데, 프로그램을 여러개 띄운 경우 내가 원하는 맨 나중에 호출된 프로그램을 받아 오지 못하는 경우가 발생하였습니다. 

그 부분을 해결 하기 위해 app.top_window()로 추후 변경 하여 코드 수정 하였습니다.

 

이후 소스는 아래 글에서 설명했습니다.

 

Pywinauto로 파일 업로드 자동화 하기 - 4.Application control 하기

Dialog 안에 담긴 Application을 Control 하는 방법에 대해 설명 하려고 합니다. 혹 이글을 먼저 보셨다면, 아래 글을 먼저 읽어 주세요 Pywinauto로 파일 업로드 자동화 하기 - 3.프로그램 호출해서 Dialog 만

lariola.tistory.com

 

반응형

댓글