본문 바로가기

카테고리 없음

파이썬 자동화 라이브러리 PyAutoGui

PyAutoGui는 마우스와 키보드 제어를 도와주는 라이브러리이다.

 

1.마우스 제어 예제

#x, y 좌표 확인
print(position.x)
print(position.y)

#마우스 이동(x, y)좌표
pyautogui.moveTo(500, 500)

#마우스 이동(x, y)좌표 2초간
pyautogui.moveTo(100, 100, 2)

#마우스 이동 ( 현재위치에서 )
pyautogui.moveRel(200, 300, 2)

#마우스 클릭
pyautogui.click()

#2초 간격으로 2번 클릭
pyautogui.click(clicks=2, interval=2)

#더블 클릭
pyautogui.doubleClick()

#오른쪽 클릭
pyautogui.click(button='right')

#스크롤하기
pyautogui.scroll(10)

#드래그하기
pyautogui.drag(0, 300, 1, button='left')

2.키보드 제어 예제

import pyautogui
import pyperclip    #pyautogui는 한글 지원이 안되므로 pyperclip을 이용

pyautogui.write('hello')  #괄호 안의 문자를 타이핑
pyautogui.write('hello', interval=0.2)  #각 문자를 0.2마다 타이핑

pyperclip.copy("안녕")    # 클립보드에 텍스트를 복사
pyautogui.hotkey('ctrl', 'v')   # 붙여넣기

hotkey()함수

-여러 키를 동시에 입력해야 할 때 사용하는 함수

 

-press(), keyDown(), keyUp() 함수 예제

import pyautogui

pyautogui.press('shift')    #shift키를 누름
pyautogui.press('ctrl')     #ctrl키를 누름

pyautogui.keyDown('ctrl')   #ctrl 키를 누른 상태를 유지
pyautogui.press('c')        #c key를 입력
pyautogui.keyUp('ctrl')     #ctrl 키를 뗌

#여러번 키를 입력하기
pyautogui.press(['left', 'left', 'left'])   #왼쪽 방향키를 세번 입력
pyautogui.press('left', presses=3) #왼쪽 방향키를 세번 입력
pyautogui.press('enter', presses=3, interval=1) # enter 키를 1초에 한번씩 세번 입력

 

3.메시지 박스

메시지박스는 사용자에게 간단한 창을 띄우거나, 버튼을 누르게 하거나, 텍스트를 입력받게 할 수 있다.

 

-alert() 함수

import pyautogui as pg

a = pg.alert(text="제목", title="내용", button="예")
print(a)

실행결과

-confirm() 함수

import pyautogui as pg

a = pg.confirm(text="제목", title="내용", buttons=["제출", "취소"])
print(a)

실행결과

-prompt() 함수

import pyautogui as pg

a = pg.prompt(text="제목", title="내용", default='입력')
print(a)

실행결과

-password() 함수

import pyautogui as pg

a = pg.password(text="제목", title="내용", default='입력', mask='*')
print(a)

실행결과

 

4.이미지로 좌표 찾기

-Locate 함수

위의 계산기에서 5번 버튼을 누른다고 가정한다면

5번 버튼 이미지의 스크린 샷을 5.png로 저장하고 파일을 소스파일과 같은 위치로 이동시킨다.

import pyautogui as pg

locate = pg.locateOnScreen('5.png')
print(locate)

-center 함수

import pyautogui as pg

locate = pg.locateOnScreen('5.png')
point = pg.center(locate)   # 객체의 중앙 좌표를 가르킴
print(locate)