PyAutoGui всегда ничего не возвращает для locateOnScreen

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

import time
import sys
import pyautogui

pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1
pyautogui.size()

width, height = pyautogui.size()


y = pyautogui.locateOnScreen('LOLicon.png')
print(y)
for i in range(2):
    x = pyautogui.moveTo(y)
    pyautogui.click(x)
    time.sleep(2)
    pyautogui.doubleClick()

del x
del y

person Will    schedule 22.08.2018    source источник


Ответы (1)


import time
import sys
import pyautogui

pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1
pyautogui.size()

width, height = pyautogui.size()

y = pyautogui.locateOnScreen('LOLicon.png')
print(y)
for i in range(2):
    x = pyautogui.moveTo(y[0:2])
    pyautogui.click(x)
    time.sleep(2)
    pyautogui.doubleClick()

Это выше работает отлично. Единственное изменение в коде — x = pyautogui.moveTo(y[0:2]).

Поэтому убедитесь, что изображение действительно отображается на экране во время выполнения скрипта (не скрыто редактором кода или другим окном) и содержимое изображения LOLicon.png действительно соответствует вашим предположениям. .

Также может быть полезно проверить, является ли этот код:

import pyautogui
im = pyautogui.screenshot(region=(20, 20, 50, 50)) 
im.save("myScreenshot.png")
y = pyautogui.locateOnScreen("myScreenshot.png")
print(y)
x = pyautogui.moveTo(y[0:2])

работает нормально без ошибок. Если это так, вы можете переименовать myScreenshot.png в LOLicon.png и настроить region=(20, 20, 50, 50) так, чтобы он отображал значок LOLi на экране.

Проверьте https://pyautogui.readthedocs.io/en/latest/screenshot.html?highlight=save%20image для получения подробной информации о функциях скриншотов в pyautogui и убедитесь, что необходимые модули установлены (Pillow и, в конечном итоге, scrot, если вы работаете в Linux).

person Claudio    schedule 22.08.2018
comment
Он по-прежнему отображает это, когда я пытаюсь запустить его: None Traceback (последний последний вызов): File C:\Python\Projects\LOLsignin.py, строка 15, в ‹module› x = pyautogui.moveTo(y[0:2 ]) TypeError: объект «NoneType» не подлежит подписке - person Will; 23.08.2018
comment
Пожалуйста, ознакомьтесь с обновленным ответом и попробуйте предоставленный дополнительный код. - person Claudio; 24.08.2018
comment
Исправлено! Благодарю вас! - person Will; 26.08.2018