개발자
교재에 나오는대로 했는데 계속 오류가 뜨네요... 뭐가 문제일까요..
1import pyautogui
2import pyperclip
3import time
4import threading
5import os
6
7#경로를 .py파일의 실행경로로 이동, 현재 경로로 이동
8os.chdir(os.path.dirname(os.path.abspath(__file__)))
9
10def send_mesaage():
11 threading.Timer(10, send_mesaage).start()
12
13 picPosition = pyautogui.locateOnScreen('카톡자동화1.png')
14 print(picPosition)
15
16 if picPosition is None:
17 picPosition = pyautogui.locateOnScreen('카톡자동화2.png')
18 print(picPosition)
19
20 if picPosition is None:
21 picPosition = pyautogui.locateOnScreen('카톡자동화3.png')
22 print(picPosition)
23
24 clickPosition = pyautogui.center(picPosition)
25 pyautogui.doubleClick(clickPosition)
26
27 pyperclip.copy("이 메세지는 자동으로 보내는 메세지 입니다~~")
28 pyautogui.hotkey("command", "v")
29 time.sleep(1.0)
30
31 pyautogui.write(["enter"])
32 time.sleep(1.0)
33
34 pyautogui.write(["escape"])
35 time.sleep(1.0)
36
37send_mesaage()
답변 1
삭제된 사용자
2023년 10월 29일
안녕하세요. 작성하신 코드의 문제는 아닌 것으로 보입니다. 아래 글을 참고해보세요. https://stackoverflow.com/questions/76361049/how-to-fix-typeerror-not-supported-between-instances-of-str-and-int-wh
잔재
작성자
대학생 • 2023년 10월 31일
감사합니다!!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 10월 29일
여기에서 여러 가능한 문제가 있을 수 있습니다: 1. 이미지 인식 문제: `pyautogui.locateOnScreen()` 함수는 단순히 스크린상의 이미지를 찾습니다. 이 기능은 완벽하지 않으므로 원하는 이미지를 항상 정확하게 찾지 못할 수 있습니다. 예를 들어, '카톡자동화1.png', '카톡자동화2.png', '카톡자동화3.png' 라는 이미지 파일들이 현재의 작업 폴더에 존재해야 합니다. 또한 화면의 해상도나 브라이트니스가 변경되거나, 해당 이미지 부분에 다른 창이 가려있다면 오류가 발생할 수 있습니다. 2. 권한 문제: Mac에서는 특정 응용 프로그램에 대한 자동화 권한을 명시적으로 부여해야 합니다. 시스템 환경 설정 -> 보안 및 개인 정보 보호 -> 개인 정보 보호 -> 접근성에서 Python이나 사용 중인 IDE를 체크하여 이 권한을 부여하세요. 3. 클립보드 복사 및 붙여 넣기: Mac에서 `pyperclip.copy()` 및 `pyautogui.hotkey("command", "v")`를 사용하여 복사 및 붙여넣기하는 경우 몇 가지 권한 문제가 발생할 수 있습니다. 4. 스레딩: 함수 `send_message()`가 자기 자신을 재귀적으로 호출하고 있어서, 무한히 반복되어 오류를 발생시킬 수 있습니다. 해결방법은 다음과 같이 시도해볼 수 있습니다: - '카톡자동화1.png', '카톡자동화2.png', '카톡자동화3.png'이미지들이 정확하게 현재의 작업 폴더에 있는지 확인하세요. - 이미지 파일의 이름과 실제 코드에서 사용된 이름이 일치하는지 확인하세요. - 이미지 인식률을 향상시키기 위해서는, 원하는 요소를 포함하는 화면 스크린샷을 바로 캡쳐하고 사용하는 것이 좋습니다. 이때, 화면 밝기나 해상도를 변경하지 않아야 합니다. - Python 또는 사용 중인 IDE에 대한 접근성 권한을 확인하세요. - threading.Timer를 제거하고 간단하게 시작해 보세요. 한 번만 메시지를 전송하여 제대로 작동하는지 확인하세요. 이 후 필요에 따라 추가 기능을 구현하세요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!