es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo usar moveTo y locateOnScreen con duración y características de tween en PyAutoGUI?

Estaba utilizando la función moveTo con coordenadas, pero he notado que a veces las coordenadas cambian, por lo que obtener esas coordenadas manualmente cada vez no está resultando tan práctico como yo quisiera.

Por lo tanto, estoy intentando utilizar la función moveTo con locateOnScreen, el problema es: si agrego la característica de tween y duration obtengo un error.

Estaba utilizando:

pyautogui.moveTo(pyautogui.locateOnScreen(1677, 610, confidence=0.8), np.random.uniform(0.8,2), pyautogui.easeInOutQuad)

Luego cambié a:

Img = 'test.png'

pyautogui.moveTo(pyautogui.locateOnScreen(Img, confidence=0.8), np.random.uniform(0.8,2), pyautogui.easeInOutQuad)

Pero con la función anterior obtengo el error: Cuando se pasa una secuencia para firstArg, secondArg no debe ser pasado y debe tener el valor predeterminado None (recibido 1.4511874585715279).

La función solo funciona si hago esto:

pyautogui.moveTo(pyautogui.locateOnScreen(Img))

Pero si utilizo esta forma, el cursor del ratón se moverá instantáneamente a las nuevas coordenadas, lo cual no quiero. Esperaría un comportamiento más “humano”.

¿Cómo usar moveTo y locateOnScreen con las características de duration y tween en PyAutoGUI?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para poder utilizar moveTo y locateOnScreen con la duración y las funcionalidades de transición en PyAutoGUI, debes separar los argumentos duration y tween de la función locateOnScreen.

    Puedes guardar la ubicación de la imagen encontrada en la pantalla utilizando locateOnScreen en una variable, de la siguiente manera:

    Img = 'test.png'
    img_location = pyautogui.locateOnScreen(Img, confidence=0.8)
    

    Luego puedes utilizar la función moveTo con los argumentos duration y tween por separado, así:

    pyautogui.moveTo(img_location, duration=np.random.uniform(0.8,2), tween=pyautogui.easeInOutQuad)
    

    De esta manera, puedes utilizar la función locateOnScreen para encontrar la ubicación de la imagen en la pantalla, guardarla en una variable y luego utilizar esa variable en la función moveTo con los valores deseados de duration y tween para lograr un comportamiento del cursor del mouse más parecido al de un ser humano.

Comments are closed.