파이썬 pyautogui 자주쓰는 이미지 서치 def 지정하기
#https://goodthings4me.tistory.com/491
import pyautogui
import pywinauto
import pyperclip
import time
import cv2 #open-cv2-python
#---
#캡쳐한 이미지가 화면에 여러개 일때 n번째
#원하는 이미지의 위치들을 리스트에 저장해놓고 for문으로 하나씩 꺼내어 쓰는 개념
def m_imgs(fname):
for i in pyautogui.locateAllOnScreen(fname):
pyautogui.click(i, duration=0.25)
print(i)
#동일한 이미지 중 n번째 이미지 클릭
def m_img(fname,cntnum):
cnt=0
for i in pyautogui.locateAllOnScreen(fname):
if cnt is cntnum:
pyautogui.click(i, duration=0.25)
print(i)
cnt=cnt+1
#범위 안에서만 캡처한 이미지를 찾고 싶을 때
def m_imgs(fname,x1,y1,x2,y2):
img_capture = pyautogui.locateOnScreen(fname, region=(x1,y1,x2,y2))
pyautogui.moveTo(img_capture)
start = time.time() # 시작 시간 저장
print("코드 실행 시간 :", time.time() - start) # 현재시각 - 시작시각 = 실행 시간
# 동일 형상 중에 특정번째만 동작하기
def Dupclick(num,fname):
for idx, i in enumerate(pyautogui.locateAllOnScreen(fname), start=1):
if idx == num: # num번쨰 등장하는 형상에만 동작 *참고 : start=1
pyautogui.click(i)
#검색된 이미지의 x,y좌표를 구해서 img_p 변수로 리턴합니다.
def imgif(url):
img_p = pyautogui.locateOnScreen(url)
print('이미지 xy좌표:',img_p)
return img_p
#검색된 이미지를 클릭합니다.
def imgclick(url):
img_xy = pyautogui.locateOnScreen(url)
time.sleep(random.randrange(1,3))
pyautogui.click(img_xy)
print('이미지 클릭:',img_xy)
#검색된 이미지를 xy좌표를 클릭합니다.
def xyclick(url):
img_xy = pyautogui.locateOnScreen(url)
time.sleep(random.randrange(1,3))
pyautogui.moveTo(img_xy)
time.sleep(random.randrange(1,3))
pyautogui.click()
print('xy좌표 클릭:',img_xy)
pyautogui.moveTo(100, 200) # x 100, y 200 위치로 바로 이동
#상하좌우 범위를 지정한 파일이름으로 저장합니다.
def imgshot(fname,x1,y1,x2,y2):
img_sc = pyautogui.screenshot(fname, region=(x1,y1,x2,y2))
time.sleep(random.randrange(1,3))
#---
windows = pyautogui.getAllWindows()
for window in windows:
print(window)
noactive = pyautogui.getWindowsWithTitle('농업교육포털 - Chrome')[0]
if noactive.isActive == False:
noactive.activate()
#https://agriedu.net/page/client_study_ing#appPage_study_status_ing_online
# 아래방향키 9번 누른다.
fname="C:/Python/py_code/automouse/img/nongsa/test-0.png"
m_img(fname,1)