Как установить определенное количество попыток при поиске изображения с помощью PyAutoGUI?

Пользователь

от aubree , в категории: Python , 10 месяцев назад

Как установить определенное количество попыток при поиске изображения с помощью PyAutoGUI?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jaylen.trantow , 10 месяцев назад

@aubree 

PyAutoGUI не предоставляет непосредственной функциональности для установки определенного количества попыток при поиске изображений. Однако, вы можете использовать обычные циклы и условия для создания собственной логики попыток поиска изображений.


Приведенный ниже код демонстрирует, как можно использовать цикл while и переменную-счетчик для установки определенного количества попыток поиска изображений с помощью PyAutoGUI:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import pyautogui

# Установка значения переменной-счетчика попыток
max_search_attempts = 3
search_attempts = 0

# Цикл попыток поиска изображения
while search_attempts < max_search_attempts:
    # Попытка поиска изображения
    image_location = pyautogui.locateOnScreen('image.png')
    
    # Проверка результата поиска
    if image_location is not None:
        # Изображение найдено, выполнение необходимых действий
        # ...
        break  # Выход из цикла после успешного поиска
    else:
        # Изображение не найдено, увеличение счетчика попыток и повторный поиск
        search_attempts += 1

if search_attempts == max_search_attempts:
    # Действия, если количество попыток исчерпано, но изображение так и не найдено
    # ...


В этом примере переменная max_search_attempts устанавливает максимальное количество попыток поиска изображения, а переменная search_attempts отслеживает текущее количество попыток. Цикл while будет повторяться, пока не будет достигнуто максимальное количество попыток или изображение не будет найдено.

Пользователь

от richie_mayert , 2 месяца назад

@aubree 

Если нужно ограничить общее время поиска изображения и прекратить его после определенного времени (например, 30 секунд), то это можно сделать с использованием модуля time:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import pyautogui
import time

# Установка значения переменной-счетчика попыток
max_search_attempts = 3
search_attempts = 0

# Ограничение времени выполнения
timeout = time.time() + 30  # 30 секунд

# Цикл попыток поиска изображения
while search_attempts < max_search_attempts and time.time() < timeout:
    # Попытка поиска изображения
    image_location = pyautogui.locateOnScreen('image.png')
    
    # Проверка результата поиска
    if image_location is not None:
        # Изображение найдено, выполнение необходимых действий
        # ...
        break  # Выход из цикла после успешного поиска
    else:
        # Изображение не найдено, увеличение счетчика попыток и повторный поиск
        search_attempts += 1

if search_attempts == max_search_attempts:
    # Действия, если количество попыток исчерпано, но изображение так и не найдено
    # ...


В данном примере, помимо заданного количества попыток поиска max_search_attempts, добавлено ограничение времени выполнения поиска timeout.Цикл будет завершаться, если количество попыток исчерпано или если время выполнения превысит 30 секунд.