PyAutoGUI permite que seus scripts Python controlem o mouse e o teclado para automatizar interações com outras aplicações. A API é projetada para ser simples. PyAutoGUI funciona no Windows, macOS e Linux, e roda no Python 2 e 3.
Para instalar com pip, execute pip install pyautogui
. Veja a Instalação para mais detalhes.
O código-fonte está disponível em: https://github.com/asweigart/pyautogui
O PyAutoGUI tem várias funcionalidades:
- Mover o mouse e clicar nas janelas de outros aplicativos.
- Enviar teclas para aplicativos (por exemplo, para preencher formulários).
- Tirar capturas de tela e, dado uma imagem (por exemplo, de um botão ou caixa de seleção), encontrá-la na tela.
- Localizar a janela de um aplicativo e mover, redimensionar, maximizar, minimizar ou fechá-la (apenas para Windows, atualmente).
- Exibir caixas de alerta e mensagens.
Aqui está um vídeo do YouTube de um bot jogando automaticamente o jogo Sushi Go Round. O bot observa a janela do aplicativo do jogo e procura imagens de pedidos de sushi. Quando encontra um, clica nos botões dos ingredientes para fazer o sushi. Ele também clica no telefone do jogo para pedir mais ingredientes conforme necessário. O bot é completamente autônomo e pode terminar todos os sete dias do jogo. Este é o tipo de automação que o PyAutoGUI é capaz de.
import pyautogui screenWidth, screenHeight = pyautogui.size() # Obter o tamanho do monitor principal. screenWidth, screenHeight (2560, 1440) currentMouseX, currentMouseY = pyautogui.position() # Obter a posição XY do mouse. currentMouseX, currentMouseY (1314, 345) pyautogui.moveTo(100, 150) # Mover o mouse para as coordenadas XY. pyautogui.click() # Clicar com o mouse. pyautogui.click(100, 200) # Mover o mouse para as coordenadas XY e clicar. pyautogui.click('button.png') # Encontrar onde button.png aparece na tela e clicar nele. pyautogui.move(400, 0) # Mover o mouse 400 pixels para a direita de sua posição atual. pyautogui.doubleClick() # Clique duplo com o mouse. pyautogui.moveTo(500, 500, duration=2, tween=pyautogui.easeInOutQuad) # Usar função de tweening/easing para mover o mouse em 2 segundos. pyautogui.write('Olá mundo!', interval=0.25) # digitar com pausa de um quarto de segundo entre cada tecla pyautogui.press('esc') # Pressionar a tecla Esc. Todos os nomes das teclas estão em pyautogui.KEY_NAMES with pyautogui.hold('shift'): # Pressionar a tecla Shift para baixo e segurá-la. pyautogui.press(['left', 'left', 'left', 'left']) # Pressionar a tecla de seta para a esquerda 4 vezes.
A tecla Shift é liberada automaticamente.
pyautogui.hotkey('ctrl', 'c') # Pressionar a combinação de teclas de atalho Ctrl-C. pyautogui.alert('Esta é a mensagem a ser exibida.') # Fazer uma caixa de alerta aparecer e pausar o programa até que OK seja clicado.
Este exemplo arrasta o mouse em uma forma de espiral quadrada no MS Paint (ou em qualquer programa de desenho gráfico):
distância = 200 enquanto distância > 0: pyautogui.drag(distância, 0, duração=0.5) # mover para a direita distância -= 5 pyautogui.drag(0, distância, duração=0.5) # mover para baixo pyautogui.drag(-distância, 0, duração=0.5) # mover para a esquerda distância -= 5 pyautogui.drag(0, -distância, duração=0.5) # mover para cima
O benefício de usar o PyAutoGUI, em vez de um script que gera diretamente o arquivo de imagem, é que você pode usar as ferramentas de pincel que o MS Paint fornece.
Envie perguntas para [email protected]
P: O PyAutoGUI pode funcionar em Android, iOS ou aplicativos de tablet/smartphone.
A: Infelizmente não. PyAutoGUI só funciona no Windows, macOS e Linux.
P: O PyAutoGUI funciona em configurações de múltiplos monitores.
A: Não, neste momento o PyAutoGUI só lida com o monitor principal.
P: O PyAutoGUI faz OCR?
A: Não, mas esta é uma funcionalidade que está no planejamento.
P: O PyAutoGUI pode fazer keylogging ou detectar se uma tecla está atualmente pressionada?
A: Não, o PyAutoGUI não pode fazer isso atualmente.
Como as vassouras encantadas do Aprendiz de Feiticeiro programadas para continuar enchendo (e depois transbordando) a banheira com água, um bug no seu programa pode fazê-lo sair do controle. É difícil usar o mouse para fechar um programa se o cursor do mouse está se movendo sozinho.
Como uma característica de segurança, uma função de segurança é ativada por padrão. Quando uma função do PyAutoGUI é chamada, se o mouse estiver em qualquer um dos quatro cantos do monitor principal, será levantada uma pyautogui.FailSafeException
. Há um atraso de um décimo de segundo após chamar cada função do PyAutoGUI para dar ao usuário tempo para jogar o mouse em um canto e acionar a segurança.
Você pode desativar essa proteção configurando pyautogui.FAILSAFE = False
. EU RECOMENDO ENCARECIDAMENTE QUE VOCÊ NÃO DESATIVE A PROTEÇÃO.
O atraso de décimo de segundo é definido pela configuração pyautogui.PAUSE
, que é 0.1
por padrão. Você pode alterar esse valor. Há também uma configuração pyautogui.DARWIN_CATCH_UP_TIME
que adiciona um atraso adicional no macOS após eventos de teclado e mouse, uma vez que o sistema operacional parece precisar de um atraso após o PyAutoGUI emitir esses eventos. Está definido como 0.01
por padrão, adicionando um atraso adicional de centésimo de segundo.
Conteúdos:
Esta documentação ainda está em andamento.
© Copyright 2019, Al Sweigart Revisão 24d638dc
.
Construído com Sphinx usando um tema fornecido por Read the Docs.