pywinauto通过图片定位怎么更加精准的识别图片?
可以使用置信度的配置,添加了对比图片相似程度达到多少就可以认为是合适的定位图片
python
import time
from time import sleep
from pywinauto.application import Application
from pywinauto.keyboard import send_keys
from pywinauto import mouse
import pyautogui
#判断是否存在
def search_is_exist_image(image_address):
try:
button_location = pyautogui.locateOnScreen(image_address, confidence=0.8)
return button_location is not None
except Exception as e:
logger.error(f'Error: {str(e)}')
return False
#间隔interval秒查询下元素image_address是否存在,超过time秒则停止
def search_is_exist_with_timeout(image_address, timeout, interval):
start_time = time.time()
while True:
if search_is_exist_image(image_address):
return True
if time.time() - start_time > timeout:
return False
time.sleep(interval)
#间隔interval秒查询下多个元素image_address是否存在,超过time秒则停止
def search_is_exist_images_with_timeout(image_address_list, timeout, interval):
start_time = time.time()
while True:
for index,image_address in enumerate(image_address_list):
if search_is_exist_image(image_address):
return index
if time.time() - start_time > timeout:
return None
time.sleep(interval)
#查找到元素并点击
def search_click(image_address):
try:
button_location = pyautogui.locateOnScreen(image_address, confidence=0.8)
if button_location is not None:
button_center = pyautogui.center(button_location)
pyautogui.click(button_center)
except Exception as e:
logger.error(f'Error: {str(e)}')
#查找到元素并移动上去
def search_move(image_address):
try:
button_location = pyautogui.locateOnScreen(image_address, confidence=0.8)
if button_location is not None:
button_center = pyautogui.center(button_location)
pyautogui.moveTo(button_center, duration=0.5)
except Exception as e:
logger.error(f'Error: {str(e)}')