在Python上模拟键盘和鼠标最简单的方法是什么?

我需要做一些macros,我想知道什么是最推荐的方法来做到这一点。

所以,我需要写点东西,点击一些地方,我需要模拟TAB键。

我使用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来设置窗口对象的值,并调用他们的.click()方法。

你可以发送按键信号:

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 

这全部在Windows中。 如果你在另一个环境,我不知道。

也许你正在寻找Sendkeys ?

SendKeys是Windows的Python模块,可以将一个或多个击键或按键组合发送到活动窗口。

它似乎只是Windows而已

你也有pywinauto (从我的答复复制)

pywinauto是一套开源(LGPL)模块,用于将Python用作基于Windows NT的操作系统(NT / W2K / XP)的GUI自动化“驱动程序”。

以及来自网页的示例

 > 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是一个很好的包发送键和自动化几个键盘/鼠标相关的任务。 检查用GUI自动化和PyAutoGUI的文档 控制键盘和鼠标 。