Introducción a Python PyAutoGUI

I

Introducción

En este tutorial aprenderemos a usarlo. pyautogui biblioteca en Python 3. Una PyAutoGUI La biblioteca proporciona soporte multiplataforma para administrar las operaciones del mouse y el teclado a través del código para permitir la automatización de tareas. El es pyautogui hay una biblioteca disponible para Python 2; sin embargo, usaremos Python 3 durante este tutorial.

Una herramienta como esta tiene muchas aplicaciones, algunas de las cuales incluyen la creación de capturas de pantalla, la automatización de pruebas de GUI (como el selenio), la automatización de tareas que solo se pueden realizar con una GUI, etc.

Antes de continuar con este tutorial, tenga en cuenta que existen algunos requisitos previos. Debe tener un conocimiento básico de la sintaxis de Python y / o haber realizado al menos programación de nivel principiante en algún otro idioma. De lo contrario, el tutorial es bastante simple y fácil de seguir para principiantes.

Instalación

El proceso de instalación de PyAutoGUI lo suficientemente simple para todos los sistemas operativos. Sin embargo, hay algunas dependencias en Mac y Linux que deben instalarse antes PyAutoGUI una biblioteca se puede instalar y utilizar en programas.

Windows

Para Windows, PyAutoGUI no tiene dependencias. Simplemente ejecute el siguiente comando en su símbolo del sistema y la instalación estará lista.

$ pip install PyAutoGUI

Mac

Tu hijo, pyobjc-core y pyobjc los módulos deben instalarse en orden primero. A continuación se muestran los comandos que debe ejecutar en orden en su terminal para instalarlos correctamente:

$ pip3 install pyobjc-core
$ pip3 install pyobjc
$ pip3 install pyautogui

Linux

Para Linux, es la única dependencia python3-xlib (para Python 3). Para instalar eso, y más allá pyautogui, ejecute los dos comandos mencionados a continuación en su terminal:

$ pip3 install python3-xlib
$ pip3 install pyautogui

Ejemplos del código básico

En esta sección, cubriremos algunas de las funciones más utilizadas de PyAutoGUI biblioteca.

Funciones genéricas

La función position ()

Antes de que pudiéramos usarlo PyAutoGUI funciones, necesitamos importarlo a nuestro programa:

import pyautogui as pag

SEO position() esta función nos dice el estado actual del mouse en nuestra pantalla:

pag.position()

Salida:

Point (x = 643, y = 329)
Función de pantalla ()

El es onScreen() la función nos dice si el punto con coordenadas xey está en la pantalla:

print(pag.onScreen(500, 600))
print(pag.onScreen(0, 10000))

Salida:

True
False

Aquí podemos ver que el primer punto está en la pantalla, pero el segundo punto cae sobre las dimensiones de la pantalla.

Función Amount ()

El es size() obtiene una función de alto y ancho de pantalla (resolución).

pag.size()

Salida:

Size (width = 1440, height = 900)

Su salida puede ser diferente y dependerá del tamaño de su pantalla.

Operaciones comunes del mouse

En esta sección, vamos a cubrir PyAutoGUI funciones de manipulación del mouse, que incluyen mover la posición del cursor y hacer clic automáticamente en los botones a través del código.

La función moveTo ()

Proporción de la moveTo() La función es la siguiente:

pag.moveTo(x_coordinate, y_coordinate)

Valor x_coordinate aumenta de izquierda a derecha de la pantalla y el valor y_coordinate aumenta de arriba a abajo. El valor de ambos x_coordinate y y_coordinate en 0 en la esquina superior izquierda de la pantalla.

Vea el siguiente script:

pag.moveTo(0, 0)
pag.PAUSE = 2
pag.moveTo(100, 500) #
pag.PAUSE = 2
pag.moveTo(500, 500)

En el código anterior, el enfoque principal es moveTo() una función que mueve el cursor del mouse en la pantalla en función de las coordenadas que proporcionamos como parámetros. La coordenada x es el primer parámetro y la coordenada y es el segundo parámetro. Es importante señalar que estas coordenadas representan la posición completa del cursor.

Otra cosa introducida en el código anterior es la PAUSE propiedad; básicamente detiene la ejecución del script durante un cierto período de tiempo. El es PAUSE se ha agregado la propiedad en el código anterior para que pueda ver la ejecución de la función; de lo contrario, las funciones se ejecutarían en décimas de segundo y no podría ver el cursor moviéndose de un lugar a otro en la pantalla.

Otra cosa que funcionaría en esto es mostrarles a todos el tiempo moveTo() operar como el tercer parámetro en la función, p. ej. moveTo(x, y, time_in_seconds).

La ejecución del script anterior puede producir el siguiente error:

Nota: posible error

Traceback (most recent call last):
  File "a.py", line 5, in <module>
    pag.moveTo (100, 500)
  File "/anaconda3/lib/python3.6/site-packages/pyautogui/__init__.py", line 811, in moveTo
    _failSafeCheck()
  File "/anaconda3/lib/python3.6/site-packages/pyautogui/__init__.py", line 1241, in _failSafeCheck
    raise FailSafeException ('PyAutoGUI fail-safe triggered from mouse moving to a corner of the screen. To disable this fail-safe, set pyautogui.FAILSAFE to False. DISABLING FAIL-SAFE IS NOT RECOMMENDED.')
pyautogui.FailSafeException: PyAutoGUI fail-safe triggered from mouse moving to a corner of the screen. To disable this fail-safe, set pyautogui.FAILSAFE to False. DISABLING FAIL-SAFE IS NOT RECOMMENDED.

Si la ejecución se realiza moveTo() Una función genera un error similar al que se muestra arriba, lo que significa que su computadora está habilitada a prueba de fallas. Para deshabilitar la protección contra fallas, agregue la siguiente línea al principio de su código:

pag.FAILSAFE = False

Esta función está habilitada de forma predeterminada para que pueda detener su ejecución pyautogui programa moviendo manualmente el mouse a la esquina superior izquierda de la pantalla. Cuando el mouse está en este lugar, pyautogui debe excepción y salida.

La función moveRel ()

Coordenadas del moveTo() función completa. Sin embargo, si desea mover la posición del mouse en relación con la posición actual del mouse, puede moveRel() función.

Lo que esto significa es que el punto de referencia para esta función, al mover el cursor, no es el punto superior izquierdo de la pantalla (0, 0), sino la posición actual del cursor del mouse. Entonces, si el cursor de su mouse se encuentra actualmente en un punto (100, 100) en la pantalla y llama al moveRel() función con los parámetros (100, 100, 2) será la nueva posición de su cursor de movimiento (200, 200).

Usted puede moveRel() funcionar como se muestra a continuación:

pag.moveRel(100, 100, 2)

La secuencia de comandos anterior moverá el cursor 100 puntos a la derecha y 100 puntos hacia abajo en 2 segundos, en relación con la posición actual del cursor.

La función de clic ()

El es click() una función se utiliza para simular operaciones de clic del mouse. Proporción de la click() La función es la siguiente:

pag.click(x, y, clicks, interval, button)

Los parámetros se explican a continuación:

  • x: coordenada x del punto a alcanzar
  • y: coordenada y del punto a alcanzar
  • clicks: la cantidad de clics que desea hacer cuando el cursor llega a ese punto en la pantalla
  • interval: la cantidad de tiempo en segundos entre cada clic del mouse, es decir, si está haciendo varios clics del mouse
  • button: especifique qué botón del mouse desea presionar cuando el cursor llegue a ese punto en la pantalla. Los valores son potenciales right, lefty middle.

Aquí hay un ejemplo:

pag.click(100, 100, 5, 2, 'right')

También puede ejecutar funciones de clic específicas de la siguiente manera:

pag.rightClick(x, y)
pag.doubleClick(x, y)
pag.tripleClick(x, y)
pag.middleClick(x, y)

Aquí está el x y y para representar el x y y coordenadas, al igual que en las funciones anteriores.

Puede tener un control más preciso con el clic de un mouse especificando cuándo se puede presionar el mouse hacia abajo y cuándo se soltará. Esto se hace usando el mouseDown y mouseUp funciones, respectivamente.

He aquí un breve ejemplo:

pag.mouseDown(x=x, y=y, button='left')
pag.mouseUp(x=x, y=y, button='left')

El código anterior es exactamente un pag.click(x, y) llamada.

Función de barra de desplazamiento ()

La última función del mouse que estamos cubriendo scroll. Como era de esperar, tiene dos opciones: desplazarse hacia arriba y hacia abajo. Proporción de la scroll() La función es la siguiente:

pag.scroll(amount_to_scroll, x=x_movement, y=y_movement)

Para desplazarse hacia arriba, ingrese un valor positivo para amount_to_scroll parámetro y, para desplazarse hacia abajo, especifique un valor negativo. Aquí hay un ejemplo:

pag.scroll(100, 120, 120)

De acuerdo, esto fue para las funciones del mouse. En este momento, debería poder controlar los botones del mouse y los movimientos por código. Pasemos ahora a las funciones del teclado. Hay muchos, pero solo cubriremos los más utilizados.

Operaciones comunes del teclado

Antes de pasar a las funciones, es importante saber qué teclas se pueden presionar a través de un código. pyautogui, así como su convención de nomenclatura exacta. Para hacerlo, ejecute el siguiente script:

print(pag.KEYBOARD_KEYS)

Salida:

['t', 'n', 'r', ' ', '!', '"', "https://Pharos.sh.com/getting-started-with-python-pyautogui/#", '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', "https://Pharos.sh.com/", '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command', 'option', 'optionleft', 'optionright']
Función de máquina de escribir ()

El es typewrite() una función se utiliza para escribir un objeto en un campo de texto. La proporción de la función es la siguiente:

pag.typewrite(text, interval)

SEO text lo que desea escribir en el campo y interval es el tiempo en segundos entre cada pulsación de tecla. Aquí hay un ejemplo:

pag.typewrite('Junaid Khalid', 1)

La secuencia de comandos anterior aplicará el texto “Junaid Khalid” en el campo seleccionado actualmente con una pausa de 1 segundo entre cada pulsación de tecla.

Otra forma en que se puede usar esta función es ingresar una lista de teclas que desea presionar en una secuencia. Para hacer esto por código, vea el siguiente ejemplo:

pag.typewrite(['j', 'u', 'n', 'a', 'i', 'd', 'e', 'backspace', 'enter'])

En el ejemplo anterior, el texto junaide para entrar, y posteriormente eliminar el final e. La entrada en el campo de texto se ingresará presionando el Enter llave.

Función de tecla de acceso rápido ()

Si no ha notado esto hasta ahora, no se mencionan las claves que mostramos anteriormente para operaciones combinadas como Control + C para el pedido de copia. En caso de que se lo pregunte, puede hacerlo pasando la lista ['ctrl', 'c'] al typewrite() función, estás equivocado. El es typewrite() presione la función de esos dos botones en secuencia, no al mismo tiempo. Y como probablemente ya sepa, para ejecutar el comando de copia, necesita el C clave y la ctrl llave.

Para presionar dos o más teclas a la vez, puede hotkey() función, como se muestra aquí:

pag.hotkey('shift', 'enter')
pag.hotkey('ctrl', '2' ) # For the @ symbol
pag.hotkey('ctrl', 'c')  # For the copy command
Función de pantalla ()

Si desea tomar una foto de la pantalla de todos modos, debe hacerlo screenshot() La función es la que estás buscando. Veremos cómo podemos implementar eso usando PyAutoGUI:

scree_shot = pag.screenshot() # to store a PIL object containing the image in a variable

Esto almacenará un PIL un objeto en el que la imagen es una variable.

Sin embargo, si desea almacenar la captura de pantalla directamente en su computadora, puede llamar al screenshot funciona así en lugar de:

pag.screenshot('ss.png')

Esto guardará la captura de pantalla en un archivo, con el nombre de archivo dado, en su computadora.

Funciones de declaración (), alertas () y aviso ()

Las siguientes funciones son el último conjunto de funciones que cubriremos en este tutorial. A continuación se muestra una lista de las funciones del cuadro de mensaje disponibles en PyAutoGUI:

  • Cuadro de confirmación: muestra información y le ofrece dos opciones. OK y Cancel
  • Cuadro de alerta: muestra información y reconoce que la ha leído. Muestra un botón, es decir OK
  • Cuadro de aviso: solicita cierta información al usuario y, al ingresar, el usuario debe OK botón

Ahora que hemos visto los tipos, veremos cómo podemos mostrar estos botones en la pantalla en el mismo orden que el anterior:

pag.confirm("Are you ready?")
pag.alert("The program has crashed!")
pag.prompt("Please enter your name: ")

En el resultado, verá la siguiente secuencia de cuadros de mensaje.

Confirmar:

Advertencia:

Rápido:

Conclusión

En este tutorial, aprendimos cómo usarlo. PyAutoGUI biblioteca automatizada en Python. Comenzamos hablando de los requisitos previos para este tutorial, su proceso de instalación para varios sistemas operativos y luego aprendimos sobre algunas de sus funciones generales. Luego, estudiamos las funciones específicas de los movimientos del mouse, el control del mouse y el control del teclado.

Después de seguir este tutorial, debería poder usarlo PyAutoGUI para automatizar las operaciones de la GUI para tareas repetitivas en su propia aplicación.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad