informatica:programacion:python:automatizacion_gui
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| informatica:programacion:python:automatizacion_gui [2020/11/05 15:33] – [Mover] tempwin | informatica:programacion:python:automatizacion_gui [2020/11/05 15:57] (actual) – [Buscar imagen en pantalla] tempwin | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Python: Automatización GUI ====== | ====== Python: Automatización GUI ====== | ||
| + | |||
| + | Se llama automatización GUI al control del ratón y teclado. | ||
| Se usa el módulo externo **PyAutoGUI** que podemos instalar con pip: '' | Se usa el módulo externo **PyAutoGUI** que podemos instalar con pip: '' | ||
| Línea 47: | Línea 49: | ||
| Con el código anterior, el ratón se movería 20 píxeles a la derecha de la posición actual | Con el código anterior, el ratón se movería 20 píxeles a la derecha de la posición actual | ||
| + | |||
| + | ==== Clic ==== | ||
| + | |||
| + | Un clic: | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.click(300, | ||
| + | </ | ||
| + | |||
| + | Doble clic: | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.doubleClick(300, | ||
| + | </ | ||
| + | |||
| + | Clic con el botón central: | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.middleClick(300, | ||
| + | </ | ||
| + | |||
| + | ==== Arrastrar ==== | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.dragTo(100, | ||
| + | </ | ||
| + | |||
| + | Si queremos un movimiento relativo, el método a usar es '' | ||
| + | |||
| + | Ejemplo dibujando una espiral cuadrada en Paint: | ||
| + | |||
| + | <code python> | ||
| + | import pyautogui | ||
| + | |||
| + | # Hacemos foto con el programa de dibujo | ||
| + | pyautogui.click() | ||
| + | |||
| + | distancia = 200 | ||
| + | |||
| + | while distancia > 0: | ||
| + | pyautogui.dragRel(distancia, | ||
| + | distancia = distancia - 25 | ||
| + | pyautogui.dragRel(distancia, | ||
| + | distancia = distancia- 25 | ||
| + | pyautogui.dragRel(distancia, | ||
| + | distancia = distancia- 25 | ||
| + | pyautogui.dragRel(distancia, | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | Si alguna vez se pierde el control al estar en ejecución algún método de PyAutoGUI, el módulo tiene una secuencia de parada cuando detecta que el ratón se mueve a las coordenadas (0,0), así que si queremos finalizar un programa de PyAutoGUI, llevamos rápidamente el ratón a la esquina superior izquierda de la pantalla | ||
| + | </ | ||
| + | |||
| ===== Obtener coordenadas del ratón ===== | ===== Obtener coordenadas del ratón ===== | ||
| Línea 67: | Línea 122: | ||
| Press Ctrl-C to quit. | Press Ctrl-C to quit. | ||
| X: 323 Y: 651 RGB: ( 12, 12, 12) | X: 323 Y: 651 RGB: ( 12, 12, 12) | ||
| + | </ | ||
| + | |||
| + | ===== Control de teclado ===== | ||
| + | |||
| + | ==== Escritura ==== | ||
| + | |||
| + | <code python> | ||
| + | import pyautogui | ||
| + | |||
| + | pyautogui.typewrite(" | ||
| + | </ | ||
| + | |||
| + | Si queremos hacer una pausa entre cada caracter, para imitar a un humano, podemos añadir el argumento '' | ||
| + | |||
| + | <code python> | ||
| + | import pyautogui | ||
| + | |||
| + | pyautogui.typewrite(" | ||
| + | </ | ||
| + | |||
| + | ==== Teclas ==== | ||
| + | |||
| + | <code python> | ||
| + | import pyautogui | ||
| + | |||
| + | pyautogui.typewrite([' | ||
| + | </ | ||
| + | |||
| + | Podemos encontrar un listado de las teclas a usar en esa lista mediante: | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.KEYBOARD_KEYS | ||
| + | </ | ||
| + | |||
| + | Si solo vamos a pulsar una tecla, podemos usar el método '' | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.press(' | ||
| + | </ | ||
| + | |||
| + | Para una combinación de teclas, método '' | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.hotkey(' | ||
| + | </ | ||
| + | |||
| + | ===== Capturar pantalla ===== | ||
| + | |||
| + | En Windows no hay que hacer nada, pero en Linux necesitamos instalar el paquete '' | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.screenshot("/ | ||
| + | </ | ||
| + | |||
| + | ==== Buscar imagen en pantalla ==== | ||
| + | |||
| + | Si tenemos una imagen que queremos comprobar si existe en el escritorio: | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.locateOnScreen("/ | ||
| + | |||
| + | # Resultado (si la encuentra) | ||
| + | # (907, 316, 50, 41) # x, y, anchura, altura del elemento | ||
| + | </ | ||
| + | |||
| + | Si queremos que la busque y nos devuelva el centro de esa imagen (por si luego queremos usar el ratón): | ||
| + | |||
| + | <code python> | ||
| + | pyautogui.locateCenterOnScreen("/ | ||
| + | |||
| + | # Resultado: | ||
| + | # (932, 326) | ||
| + | |||
| + | pyautogui.moveTo((932, | ||
| + | |||
| + | pyautogui.click() | ||
| </ | </ | ||
informatica/programacion/python/automatizacion_gui.1604586825.txt.gz · Última modificación: por tempwin
