본문 바로가기

업무 자동화

파이썬 마우스 클릭 업무 자동화

반응형

 안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 'Master.M'입니다.

오늘 알아볼 내용은 파이썬을 활용하여 마우스를 클릭하는 업무 자동화입니다. 

 

 

 요즘 들어 특히 '업무 자동화'라는 개념이 많이 유행하는 것 같습니다. 예전에는 더욱 심했겠지만 지금도 여전히 많은 분들이 직장생활을 하면서 비효율적인 단순 노동을 하고 있습니다. 많은 이유가 있겠지만 그 중에서도 우리나라의 고질적인 관료주의적 '꼰대'문화에서 비롯된 과도한 서류처리가 많은 지분을 차지하고 있는것 같습니다. 물론 이러한 사회적 구조가 바뀐다면 가장 좋겠지만 저는 오늘 여러분께 차선책으로써 파이썬을 활용한 클릭 업무 자동화를 알려드리고자 합니다. 부디 많은 도움이 되시길 바라겠습니다.

 

 

 그러면 우선적으로 파이썬을 활용하여 할 수 있는 클릭 코드들에 대해 알아보도록 하겠습니다. 우선 'pyautogui'를 설치를 해주어야 하는데 이때 cmd에 아래와 같이 pip함수를 활용하여 설치를 해줍니다. 

 

pip install pyautogui

 

 

그다음 이를 import 함수를 동해 불러와줍니다. 이러면 파이썬을 통한 클릭 자동화 환경은 준비가 되었습니다. 

 

import pyautogui

 

 

그러면 지금부터는 마우스 클릭에 필요한 함수들에 대해 알아보도록 하겠습니다.

 

1. 마우스 이동 함수 :  pyautogui.moveTo(x, y, time)

pyautogui.moveTo()를 이용해 우리는 원하는 위치로 마우스를 이동할 수 있습니다. 괄호 안에는 마우스가 이동할 x, y축의 위치와 이동하는데 까지 걸리는 시간이 들어갑니다. x, y 위치에 대해서는 아래에서 자세히 알아보도록 하겠습니다.

 

# 마우스를 원하는 위치로 원하는 시간에 이동(x, y, time)
pyautogui.moveTo(908, 1061, 0.5)

 

 

2. 마우스 클릭 함수 : pyautogui.click()

마우스를 한번 클릭해줍니다. 

 

# 마우스 클릭
pyautogui.click()

 

 

3. 마우스 우클릭 함수 : pyautogui.click(button='right')

마우스를 한번 우클릭 해줍니다.

 

# 마우스 우클릭
pyautogui.click(button='right')

 

 

4. 마우스 더블클릭 : pyautogui.doubleClick()

마우스를 더블클릭해줍니다.

 

# 마우스 더블클릭
pyautogui.doubleClick()

 

 

5. 마우스 여러 번 클릭 : pyautogui.click(clicks, interval)

마우스를 원하는 클릭수만큼, 원하는 시간 간격으로 클릭해줍니다. 예를 들어 아래 코드는 1초 간격으로 3번 클릭해주는 코드입니다.

 

# 마우스 1초 간격으로 3번 클릭
pyautogui.click(clicks=3, interval=1)

 

 

6. 마우스 드래그 : pyautogui.dragTo(x, y, time)

마우스를 지금 위치에서 원하는 위치까지 드레그를 원하는 시간 동안 해줍니다. 

 

# 마우스 드레그
pyautogui.dragTo(1000, 1061, 0.5)

 

 

그러면 화면상의 x, y좌표는 어떻게 구할까요? 바로 pyautogui.mouseInfo() 함수를 통해 구할 수 있습니다. 아래 코드를 실행하면 아래 그림과 같은 창이 나옵니다. 여기서 원하는 위치에 마우스를 가져다 놓으면 해당 위치의 (x, y)를 알 수 있습니다. 아래 그림에서는 제가 '코딩 오페라'라는 메모장의 위치를 알아본 결과 (875, 290) 임을 확인할 수 있었습니다. 

pyautogui.mouseInfo()

마우스 위치

 

 

 

 그럼 간단한 예제를 통해 위의 코드를 실제로 응용해보는 시간을 갖겠습니다. 우리의 과제는 아래 그림과 같이 1번 위치의 '코딩 오페라'메모장을 더블클릭하고 2번부터 3번까지 'Coding Opera'를 드래그하는 것입니다.

 

- 1번 위치의 '코딩오페라'메모장을 더블클릭

- 2번 부터 3번까지 'Coding Opera'를 드레그

 

 

 

이를 코드로 나타내면 다음과 같습니다. 우선 각 번호별 위치는 아래와 같습니다.

 

1. (875, 290)

2. (1269, 311)

3. (1100, 312)

 

때문에 이를 통해 마우스를 이동 및 드래그 해주면 됩니다. 시간을 0.5초 딜레이를 해준이유는 메모장이 켜지는 시간과 드레그 하는데 시간이 걸리게 되어 임의로 0.5초를 설정해 주었습니다.(시간을 설저을 하지 않거나 너무 짧으면 인식이 안됩니다.)

import pyautogui

pyautogui.moveTo(875, 290)
pyautogui.doubleClick()
pyautogui.moveTo(1269, 311, 0.5)
pyautogui.dragTo(1100, 312, 0.5)

 

 

위의 코드들은 아래 제 github링크에 있으니 참고하시기 바랍니다.

https://github.com/CodingOpera/RPA/blob/main/Auto_Click.ipynb

 

GitHub - CodingOpera/RPA

Contribute to CodingOpera/RPA development by creating an account on GitHub.

github.com

 

위 내용을 보다 편하게 영상으로 시청하시고 싶으시다면 아래 제 유튜브 영상을 시청하시기 바랍니다.

https://www.youtube.com/watch?v=xUc6wbkCrbU&t=473s 

 

 오늘은 파이썬을 통해 클릭업부 자동화에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다. 궁금한 사항 혹은 앞으로 다루어 주었으면 좋을 주제가 있으시면 댓글 남겨주시면 감사하겠습니다. 저는 '코딩 오페라'의 'Master.M'이었습니다. 감사합니다. 

반응형