Introducci贸n a Python PyAutoGUI

    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.

     

    Etiquetas:

    Deja una respuesta

    Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *