Search code examples
pythonpyautogui

why does my pyautogui code not works good


I create a simple script to find image on the desktop ,and type 'I found it ' ,and if I hide the image the script type 'I am unable to found it'.

the problem when I add another action ,which is I want the mouse move to the position of the image. the script works good ,but when I hide the image the mouse still move to the position ,and still type I found it. But normally the code should show me I am unable to found it. the script still working on if instead to move to else.

my code is:

import pyautogui
import time

location = pyautogui.locateOnScreen('image.png', confidence = 0.6)

while 1:
    if location:
        print("I found it ")
        time.sleep(2)
        print(pyautogui.moveTo(location))

    else:
        print("I am unable to found it")

Solution

  • you store pyautogui.locateOnScreen('image.png', confidence = 0.6) in the variable location. Then you check the condition (if/else). But then you never recheck for pyautogui.locateOnScreen('image.png', confidence = 0.6). I am still not sure what you are trying to achieve here, but at least the check needs to go into the while:

    while 1:
        location = pyautogui.locateOnScreen('image.png', confidence = 0.6)
        if location:
            print("I found it ")
            time.sleep(2)
            print(pyautogui.moveTo(location))
        else:
            print("I am unable to find it")