반응형
자동화를 위해서는, 굳이 처음에 새로 프로그램을 실행시키는 것을 반복하는 것 보다는, 실행되어 있는 프로그램에서 계속 무언가 반복하는게 필요할 수 있다.
새로 프로그램 실행 : start()
열려있는 프로그램 인식 : connect()
# -*- coding: utf-8 -*-
"""
Created on Fri Feb 7 22:15:50 2020
@author: kenro
"""
from pywinauto.application import Application
import pywinauto
# 열려진 메모장 다이얼로그 창에 컨넥트 함
app = pywinauto.application.Application()
# 열려진게 없을때는 Run a target application
#app = Application().start("notepad.exe")
#app.connect(title="제목 없음 - 메모장") #처음 메모장 연 상태
app.connect(title="test - 메모장") #코드 한번 실행하고난뒤 타이틀 명이 바뀜
# 다이얼로그 창 정의
#mainWindow = app['제목없음메모장'] # main windows' title
mainWindow = app['test'] # main windows' title
# 파일 이름 입력하는 창에가서 'test.txt' 라고 입력
ctrl=mainWindow['Edit1']
mainWindow.set_focus()
ctrl.click_input()
ctrl.type_keys("test.txt")
# 열기 버튼 클릭
#mainWindow.Button1.click()
app.UntitledNotepad.menu_select("파일(&F)->다른 이름으로 저장(&A)...")
# '다른 이름으로 저장' 창의 속성을 리스트업 한다.
# app.다른_이름으로_저장.print_control_identifiers()
# 파일 full 경로 입력
app.다른_이름으로_저장.Edit1.set_edit_text(r"C:\Users\kenro\Documents\AutoTest\test.txt") #unicode escape
# '파일이름' 콤보박스에서 파일 종류 선택
app.다른_이름으로_저장.ComboBox2.select("모든 파일")
# '파일형식' 콤보박스에서 인코딩 선택
app.다른_이름으로_저장.ComboBox3.select("UTF-8")
# 바로 저장 버튼을 누르면 미처 콤보 박스가 안 바뀌어 에러가 나서 1초 시간 줌
import time
time.sleep(1.0)
# 저장 버튼 누름
app.다른_이름으로_저장.Button1.click()
#같은 이름 있다는 에러창이 나오면 클릭
app.다른이름으로저장확인.Button1.click()
파일 경로설정시에 unicodeescape error를 피하기위해서, 경로에 조작이 필요하다.
파이썬은 특수 문자를 \ 로 시작하여 인식하기 때문에 위와 같은 오류가 발생한다.
해결방법은 \를 \\ 로 수정하여 처리하는 방법이 있고,
다른 방법은 문자열 " "앞에 r을 붙여 주면 raw 로 인식되어 오류가 나지 않는다.
반응형
'Software coding skill(python, web등)' 카테고리의 다른 글
pywinauto 7 - 안정적인 자동화 (0) | 2020.02.11 |
---|---|
pywinauto 6 - listview 내 text 읽기/쓰기 (0) | 2020.02.11 |
pywinauto 5 - 32bit / 64bit app 종류별 환경 설정 (0) | 2020.02.11 |
pywinauto 4 - list select / click (0) | 2020.02.11 |
Pywinauto 3 - Attribute Magic (0) | 2020.02.11 |
Pywinauto 2 - Window Specification (0) | 2020.02.10 |
Pywinauto 1 - Entry Points for Automation (0) | 2020.02.10 |
color script 사용 - code 첨부 글쓰기 (0) | 2020.02.07 |