업로드 자동화 프로그램 시나리오는 아래 글을 참고하세요.
우선, 자동화 프로그램의 Flow를 설명하자면 아래와 같습니다.
1. 프로그램을 호출하기 위한 path를 선언 해 주고 (나는 설치되어 있는 경로를 선언 해 주었다.)
2. Application start 명령어를 통해서 실행 시킨다.
3. 해당 윈도우 창을 변수로 선언하고,
4. 그 창 안에서 발생되어야 하는 Action들을 선언 해 준다.
구현된 소스는 아래와 같습니다. (심플하죠?)
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()로 추후 변경 하여 코드 수정 하였습니다.
이후 소스는 아래 글에서 설명했습니다.
'Work > 개발' 카테고리의 다른 글
AWS 아웃바운드 리졸버 셋팅 (0) | 2021.09.01 |
---|---|
Pywinauto로 파일 업로드 자동화 하기 - 4.Application control 하기 (0) | 2021.07.02 |
Pywinauto로 파일 업로드 자동화 하기 - 2.Pywinauto 설치하기 (0) | 2021.06.25 |
Pywinauto로 파일 업로드 자동화 하기 - 1. 시나리오 만들기 (0) | 2021.06.24 |
auto 클릭 (0) | 2021.06.21 |
댓글