解决Python自动化脚本中pyscreeze模块的locateOnWindow错误
这个错误是由于pyscreeze模块中没有locateOnWindow函数引起的。你可以尝试使用其他的图像识别库,比如OpenCV来替代pyscreeze的locateOnWindow函数。
首先,确保你已经安装了OpenCV库。你可以使用以下命令进行安装:
pip install opencv-python
然后,使用以下代码来替代pyscreeze中的locateOnWindow函数:
import cv2
import numpy as np
def locateOnWindow(image_path, confidence=0.8):
template = cv2.imread(image_path, 0)
h, w = template.shape[::-1]
screen = np.array(pyautogui.screenshot())
gray_screen = cv2.cvtColor(screen, cv2.COLOR_BGR2GRAY)
res = cv2.matchTemplate(gray_screen, template, cv2.TM_CCOEFF_NORMED)
loc = np.where(res >= confidence)
for pt in zip(*loc[::-1]):
return pt[0] + w // 2, pt[1] + h // 2
return None
然后,你可以使用以下代码来点击'我的照片查询'和'考试照片查询':
# 在打开的小程序中找到并点击'我的照片查询'
my_photos_query_position = locateOnWindow('my_photos_query.png')
if my_photos_query_position:
pyautogui.click(my_photos_query_position)
else:
print('未找到'我的照片查询'字样')
# 在打开的小程序中找到并点击'考试照片查询'
exam_photos_query_position = locateOnWindow('exam_photos_query.png')
if exam_photos_query_position:
pyautogui.click(exam_photos_query_position)
else:
print('未找到'考试照片查询'字样')
这样应该就可以解决这个错误了。请确保你的图片文件和代码文件在同一个目录下,并且图片文件名和代码中的文件名一致。
原文地址: https://www.cveoy.top/t/topic/bsHv 著作权归作者所有。请勿转载和采集!