강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

haj1126님의 프로필 이미지
haj1126

작성한 질문수

pyautogui.locateOnScreen을 동작할 때 다른 것만 클릭됩니다.

작성

·

920

0

김플님의 강의 [업무 자동화를 위한 파이썬 pyautogui, beautifulsoup 크롤링 기초] 2강 중간부분에서,

계산기의 "7" 이미지를 캡처하고, 그것을 png 이미지로, 현재 돌리고 있는 py파일이 들어있는 폴더에 저장한 다음,

i = pyautogui.locateOnScreen("7.PNG")

print (i) 라고 찍어 보면, 두 가지의 상이한 결과가 나옵니다.

 

윈도우 파일 탐색기로 그 png 파일을 선택하면 창 우측에 미리보기가 떠 있지요.

◆1. 그 미리보기가 떠 있는 동안에는, 제대로 Box(left=1668, top=509, width=111, height=71) 라는 값을 출력해 줍니다.

◆2. 하지만 그 미리보기가 떠 있지 않으면, 출력값은 None이 되어버리고, 그 다음 과정도 진행이 되지 않는군요.

두 경우 모두 계산기 앱은 화면에 띄워져 있는 상태였습니다.

 

◆1.의 경우에, 미리보기가 떠 있는 상태로 그 아래 코드인

q = pyautogui.center(i) pyautogui.click(q)

까지 전부 실행을 시키면, 이번에는 윈도우 파일 탐색기의 미리보기에(...) 마우스가 클릭을 해댑니다. 정말 주객이 전도된 상태가 아니라 할 수 없지요.

어떻게 하면 이 문제를 해결할 수 있을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요. pyautogui.locateOnScreen 함수를 사용할 때 다른 것만 클릭되는 문제가 발생하고 있는 상황이군요.

이런 경우에는 몇 가지 가능한 원인과 해결 방법을 고려해볼 수 있습니다.

첫째로, 이미지 인식 도중에 미리보기 창이 활성화되어 있는 경우에는 인식이 잘 되는데, 미리보기 창이 비활성화되어 있는 경우에는 인식이 되지 않는 것으로 보입니다. 이는 창이 활성화되어 있는 경우에는 대상 이미지의 픽셀 값이 변경되어 인식 결과가 달라지기 때문입니다. 이 문제를 해결하기 위해서는, 이미지를 인식할 때에는 창이 활성화되지 않았는지 확인하여 인식을 진행하도록 수정해야 할 것입니다.

둘째로, 마우스 클릭이 미리보기 창에 발생하는 문제가 발생하는 것으로 보입니다. 이는 마우스 좌표를 제대로 설정하지 않아서 발생하는 문제일 수 있습니다. 마우스 좌표는 대상 이미지의 위치와 관련이 있기 때문에, 인식된 이미지의 좌표를 기반으로 마우스 클릭 좌표를 설정해야 합니다. pyautogui.click 함수의 x와 y 좌표를 인식한 이미지의 중심 좌표인 q로 설정해보세요.

이 외에도 해결 방법은 다양할 수 있습니다. 하지만 정확한 해결 방법은 상황에 따라 다를 수 있기 때문에, 위의 내용을 참고하여 문제를 해결해보시기 바랍니다. 문제가 해결되지 않거나 추가적인 도움이 필요한 경우는 해당 강의의 Q&A나 강사에게 질문해보시는 것을 추천드립니다. 수고하세요!

haj1126님의 프로필 이미지
haj1126

작성한 질문수

질문하기