Какой самый простой способ имитировать клавиатуру и мышь на Python?

Мне нужно сделать некоторые макросы, и я хочу знать, что это самый рекомендуемый способ сделать это.

Итак, мне нужно написать что-то и щелкнуть несколько мест с ним, и мне нужно подражать клавише TAB.

Ответ 1

Я делаю автоматическое тестирование на Python. Я имею тенденцию использовать следующее:

http://www.tizmoi.net/watsup/intro.html
Изменить: Ссылка мертва, архивная версия: https://web.archive.org/web/20100224025508/http://www.tizmoi.net/watsup/intro.html

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

Я не всегда (почти никогда) не моделирую нажатия клавиш и движения мыши. Обычно я использую COM для установки значений объектов Windows и вызова их методов .click().

Вы можете отправить сигналы нажатия клавиш с помощью этого параметра:

import win32com.client

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

Это все в Windows. Если вы находитесь в другой среде, я понятия не имею.

Ответ 2

Возможно, вы ищете Sendkeys?

SendKeys - это модуль Python для Windows, которая может отправлять одну или несколько комбинаций клавиш или комбинаций клавиш в активное окно.

кажется, что это только окна

Также у вас есть pywinauto (скопирован из моего SO ).

pywinauto - это набор open-source (LGPL) для использования Python в качестве GUI "драйвер" для Windows NT (NT/W2K/XP).

и пример с веб-страницы

> 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()

Ответ 4

Вы можете использовать библиотеку PyAutoGUI для Python, которая работает на Windows, macOS и Linux.

Mouse

Вот простой код для перемещения мыши в середину экрана:

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

Страница документов: Функции управления мышью.

Похожие вопросы: Управление мышью с помощью Python.

Клавиатура

Пример:

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

Страница документов: Функции управления клавиатурой.


Дополнительная информация: Управление клавиатурой и мышью с помощью GUI Automation (глава 18 электронной книги).

Похожие вопросы: