Как дождаться появления конкретного изображения на экране с помощью pyautogui? - PullRequest
0 голосов
/ 01 июня 2018

У меня есть одно приложение, которое я могу автоматизировать с помощью модуля pyautogui.Я храню эталонное изображение в каталоге скриптов, и после некоторого времени ожидания я могу его завершить.В некоторых сборках конкретное изображение занимает некоторое время, чтобы появиться.После чего мой сценарий выдает attribute not found error.

. Мне нужно знать, как управлять pyautogui, чтобы дождаться появления изображения на экране и после этого перейти к следующему выполнению.

IЯ искал много вопросов о переполнении стека, где я обнаружил wait_until () в модуле pywinauto, где скрипт ожидает определенного окна.Таким же образом, у нас есть что-нибудь, чтобы pyautogui мог дождаться появления определенного изображения на экране?

Используемая версия Python: 3.6.

Ответы [ 2 ]

0 голосов
/ 23 января 2019

В более новой версии Python (3.6) locateOnScreen () больше не возвращает None, если не может найти изображение.Это подняло бы исключение вместо этого.Поработав в течение 10 минут, я обнаружил, что приведенное ниже решение работает:

r = Нет, а r == Нет: try: print (pyautogui.locateOnScreen ("rb.png")) break, за исключением исключения как e: r = Нет

0 голосов
/ 01 июня 2018

Это будет ждать, пока не найдет изображение:

icon_to_click = "Recycle Bin"

r = None
while r is None:
    r = pyautogui.locateOnScreen('rb.png', grayscale = True)
print icon_to_click + ' now loaded'
...