728x90
728x90

python으로 매크로를 만들어 반응속도 테스트에서 외계인이 되려 합니다.

pyautoGUI

마우스와 키보드 제어하는 라이브러리

pip install pyautogui를 이용하여 설치해야 함

 

자주쓰는 pyautoGUI 메서드

position = pyautogui.position()               # 좌표 객체 얻기

print(pyautogui.size())                           # 화면 전체 크기 확인하기

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

print(position.y)

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

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

pyautogui.click()                                  # 마우스 클릭

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

pyautogui.doubleClick()                        # 더블 클릭

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

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

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

 

write() 함수는 shift나 ctrl 등 특수키를 누룰수 없습니다.

pyautogui.write('hello world!')                           # 괄호 안의 문자를 타이핑 합니다.

pyautogui.write('hello world!', interval=0.25)         # 각 문자를 0.25마다 타이핑합니다.

 

pyautogui.press('shift')                                     # shift 키를 누릅니다.

pyautogui.keyDown('ctrl')                                 # ctrl 키를 누른 상태를 유지합니다.

pyautogui.keyUp('ctrl')                                     # ctrl 키를 뗍니다. 

 

키를 여러번 입력하고 싶을 때

pyautogui.press(['left', 'left', 'left'])                       # 왼쪽 방향키를 세번 입력합니다.

pyautogui.press('left', presses=3)                        # 왼쪽 방향키를 세번 입력합니다. 

pyautogui.press('enter', presses=3, interval=3)       # enter 키를 3초에 한번씩 세번 입력합니다. 

 

여러 키를 동시에 입력하고 싶을 때

pyautogui.hotkey('ctrl', 'c')                                # ctrl + c 키를 입력합니다.


Pillow

이미지 분석 및 처리를 도와주는 패키지

pip install pillow를 작성하여 설치해야 함


반응속도 테스트 외계인 되기

반응 속도 테스트 첫페이지 입니다.
보라색 화면을 클릭하면 빨간색이 되며 초록색이 되었을 때 클릭하여 반응속도를 체크합니다.

import pyautogui
from PIL import ImageGrab

a = 0
while a < 5:
    if ImageGrab.grab().getpixel(pyautogui.position()) == (178, 255, 178):
        pyautogui.click()
        a += 1

pyautogui.position()는 마우스의 좌표를 가져오는 함수이고

getpixel()은 x, y좌표을 매개변수로 받아서 그 위치의 RBG 값을 반환합니다,

마우스가 있는 위치의 RBG값이 초록색 부분 RGB(178, 255, 178)와 비교하여 같으면 클릭하는 작업을 반복합니다.


참고문헌

파이썬 웹크롤링 과 자동화에 대한 A to Z

인프런 강의 - 업무 자동화를 위한 파이썬 pyautogui, beautifulsoup 크롤링 기초

예제로 배우는 파이썬 프로그래밍 - 파이썬 이미지 처리 (Pillow)

정보의 공유 사회 티스토리 - 파이썬 이미지 처리 pillow(PIL) 설치 및 사용 예제 총정리

 

 

728x90
728x90