¿Cuál es la forma más fácil de simular el teclado y el mouse en Python?

Necesito hacer algunas macros y quiero saber cuál es la forma más recomendada de hacerlo.

Por lo tanto, debo escribir algunas cosas y hacer clic en algunos lugares con él y debo emular la tecla TAB para.

Hago pruebas automatizadas en Python. Tiendo a usar lo siguiente:

http://www.tizmoi.net/watsup/intro.html
Edición: el enlace está muerto, versión archivada: https://web.archive.org/web/20100224025508/http://www.tizmoi.net/watsup/intro.html

http://www.mayukhbose.com/python/IEC/index.php

No siempre (casi nunca) simulo las pulsaciones de teclas y el movimiento del ratón. Normalmente uso COM para establecer valores de objetos de Windows y llamar a sus métodos .click ().

Puede enviar señales de pulsación de tecla con esto:

import win32com.client shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused shell.SendKeys("{DELETE}") # Delete selected text? Depends on context. :P shell.SendKeys("{TAB}") #Press tab... to change focus or whatever 

Esto es todo en Windows. Si estás en otro entorno, no tengo ni idea.

Tal vez usted está buscando Sendkeys ?

SendKeys es un módulo de Python para Windows que puede enviar una o más combinaciones de teclas o teclas a la ventana activa.

parece que es solo ventanas

También tienes pywinauto (copiado de mi respuesta SO)

pywinauto es un conjunto de módulos de código abierto (LGPL) para usar Python como un ‘controlador’ de automatización GUI para sistemas operativos basados ​​en Windows NT (NT / W2K / XP).

y ejemplo de la página web

 > from pywinauto import application > app = application.Application.start("notepad.exe") > app.notepad.TypeKeys("%FX") > app.Notepad.MenuSelect("File->SaveAs") > app.SaveAs.ComboBox5.Select("UTF-8") > app.SaveAs.edit1.SetText("Example-utf8.txt") > app.SaveAs.Save.Click() 

pyautogui es un gran paquete para enviar claves y automatizar varias tareas relacionadas con el teclado / mouse. Consulte Control del teclado y el mouse con la automatización de GUI y la documentación de PyAutoGUI .

Puede usar la biblioteca PyAutoGUI para Python que funciona en Windows, macOS y Linux.

Ratón

Aquí hay un código simple para mover el mouse a la mitad de la pantalla:

 import pyautogui screenWidth, screenHeight = pyautogui.size() pyautogui.moveTo(screenWidth / 2, screenHeight / 2) 

Página de documentos: Funciones de control del ratón .

Pregunta relacionada: Controlando el mouse con Python .

Teclado

Ejemplo:

 pyautogui.typewrite('Hello world!') # prints out "Hello world!" instantly pyautogui.typewrite('Hello world!', interval=0.25) # prints out "Hello world!" with a quarter second delay after each character 

Página de documentos: Funciones de control del teclado .


Más información: control del teclado y el mouse con la automatización de GUI (Capítulo 18 del libro electrónico).

Preguntas relacionadas:

  • Biblioteca de automatización de Python GUI para simular la interacción del usuario en aplicaciones .
  • Python simula keydown .