在Python上模拟键盘和鼠标最简单的方法是什么?
我需要做一些宏,我想知道最推荐的方法是什么 所以,我需要写一些东西并用它单击一些地方,我需要模拟TAB键。也许你在寻找 SendKeys是一个用于 可以发送一个或多个 击键或击键组合 到活动窗口 好像只有窗户 你也有(从我的SO抄袭) pywinauto是一套开源软件 (LGPL)用于将Python用作 适用于Windows NT的GUI自动化“驱动程序” 基于操作系统(NT/W2K/XP) 和网页上的示例在Python上模拟键盘和鼠标最简单的方法是什么?,python,windows,keyboard,mouse,Python,Windows,Keyboard,Mouse,我需要做一些宏,我想知道最推荐的方法是什么 所以,我需要写一些东西并用它单击一些地方,我需要模拟TAB键。也许你在寻找 SendKeys是一个用于 可以发送一个或多个 击键或击键组合 到活动窗口 好像只有窗户 你也有(从我的SO抄袭) pywinauto是一套开源软件 (LGPL)用于将Python用作 适用于Windows NT的GUI自动化“驱动程序” 基于操作系统(NT/W2K/XP) 和网页上的示例 > from pywinauto import application >
> 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()
也许你在找什么
SendKeys是一个用于
可以发送一个或多个
击键或击键组合
到活动窗口
好像只有窗户
你也有(从我的SO抄袭)
pywinauto是一套开源软件
(LGPL)用于将Python用作
适用于Windows NT的GUI自动化“驱动程序”
基于操作系统(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()
我用Python进行自动化测试。我倾向于使用以下方法:
编辑:链接已失效,存档版本: 我并不总是(几乎从不)模拟按键和鼠标移动。我通常使用COM设置windows对象的值并调用它们的.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中。如果你在另一个环境中,我不知道 我用Python进行自动化测试。我倾向于使用以下方法:
编辑:链接已失效,存档版本: 我并不总是(几乎从不)模拟按键和鼠标移动。我通常使用COM设置windows对象的值并调用它们的.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中。如果你在另一个环境中,我不知道 pyautogui是一个很好的软件包,可以发送按键并自动执行与键盘/鼠标相关的任务。签出并重试。pyautogui是一个很棒的软件包,可以发送按键并自动执行与键盘/鼠标相关的任务。查看并查看。您可以使用在Windows、macOS和Linux上工作的Python 老鼠 下面是将鼠标移动到屏幕中间的简单代码:
import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
文档页面:
相关问题:
键盘
例如:
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
文档页面:
更多阅读:(电子书第18章) 相关问题:
import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
文档页面:
相关问题:
键盘
例如:
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
文档页面:
更多阅读:(电子书第18章) 相关问题:
- pynput——适用于Windows(已测试)、Linux和MacOS——文档位于
- PyDirectInput--仅适用于Windows,可与(或不与)PyAutoGUI一起使用
from pynput import keyboard
try:
import pydirectinput
pydirectinput.PAUSE = 0.05
except ImportError as err:
pydirectinput = False
print("pydirectinput not found:")
def write_char(ch):
upper = ch.isupper()
if pydirectinput and pydirectinput.KEYBOARD_MAPPING.get(ch.lower(), False):
if upper:
pydirectinput.keyDown('shift')
print('^')
pydirectinput.write(ch.lower(), interval=0.0)
print(ch)
if upper:
pydirectinput.keyUp('shift')
else:
keyboard.Controller().type(ch)
这允许发送字符串,并通过pydirectinput处理大写字母字符。当字符不能简单地映射时,函数会返回到使用pynput。请注意,PyAutoGUI也无法处理某些移位字符,例如:%符号等。另外两个选项是:
- pynput——适用于Windows(已测试)、Linux和MacOS——文档位于
- PyDirectInput--仅适用于Windows,可与(或不与)PyAutoGUI一起使用
from pynput import keyboard
try:
import pydirectinput
pydirectinput.PAUSE = 0.05
except ImportError as err:
pydirectinput = False
print("pydirectinput not found:")
def write_char(ch):
upper = ch.isupper()
if pydirectinput and pydirectinput.KEYBOARD_MAPPING.get(ch.lower(), False):
if upper:
pydirectinput.keyDown('shift')
print('^')
pydirectinput.write(ch.lower(), interval=0.0)
print(ch)
if upper:
pydirectinput.keyUp('shift')
else:
keyboard.Controller().type(ch)
这允许发送字符串,并通过pydirectinput处理大写字母字符。当字符不能简单地映射时,函数会返回到使用pynput。请注意,PyAutoGUI也无法处理某些移位字符,例如:%符号等。您可能需要更具体地说明您正在测试的是什么。网页?桌面应用程序?网页、桌面应用程序、everything=)是在OS X中模拟键盘事件的一种方法。您可能希望更具体地了解您正在测试的内容。网页?桌面应用程序?网页、桌面应用程序、everything=)是在OS X中模拟键盘事件的一种方法。好消息:要使用win32com,首先必须安装。要激活要将按键发送到的程序,请使用
shell.AppActivate(“记事本”)
(替换记事本)这非常有效-感谢@dagur提供有关窗口焦点的提示!我还需要鼠标事件模拟-这对我来说是最好的,并且与此键盘解决方案配合得很好。很高兴知道:要使用win32com,首先必须安装。要激活要将按键发送到的程序,请使用sh