首页 > 其他分享 >模拟鼠标键盘操作PyUserInput

模拟鼠标键盘操作PyUserInput

时间:2023-10-27 12:34:32浏览次数:42  
标签:鼠标 button character PyUserInput 键盘 key keyboard 100

模拟鼠标操作是模拟鼠标点击和键盘输入的操作,UI自动化测试中非常实用。在Web UI、App UI、WinApp UI自动化测试讲解中借助Selenium和Appium框架下ActionChains、TouchAction、MouseButton等类已经介绍了如何模拟鼠标和键盘操作。本文将为大家介绍一个独立的、任何时候都可以模拟鼠标和键盘操作的Python第三方库PyMouse和PyKeyboard。
PyMouse和PyKeyboard库都集成在PyUserInput库中,支持在Linux、Mac、Windows系统中使用,但是不同的操作系统使用时依赖库是不同的,Linux系统下依赖Xlib库、Mac系统下依赖Quartz和AppKit库、Windows系统下依赖pywin32和pyHook库。在安装上和Python其他第三方库安装相同,命令行工具中输入pip install PyUserInput库即可完成安装。

鼠标操作

鼠标操作种类繁多,例如左键单击、鼠标移动、鼠标拖拽、滚动、鼠标按下、鼠标释放等。PyMouse类下提供的方法如下:
 drag(x, y):鼠标拖拽到x,y坐标。
 move(x, y):鼠标移动到x,y坐标。
 position():返回鼠标当前x,y坐标。
 press(x, y, button=1):鼠标在x,y坐标处按下不松开,参数button表示按键。1代表左键、2代表中间键、3代表右键。
 release(x, y, button=1):鼠标在x,y坐标处松开,参数button表示按键。1代表左键、2代表中间键、3代表右键。
 scroll(vertical=None, horizontal=None, depth=None):鼠标滚动。支持垂直、水平和深度三个方向。
 click(x, y, button=1, n=1):鼠标在x,y坐标处点击。参数button表示按键,1代表左键、2代表中间键、3代表右键,参数n表示点击几次。
例如鼠标在坐标x=100,y=100处左键点击两次,代码如下:

# pymouse_demo.py
from pymouse import PyMouse

# 实例化鼠标对象
mouse = PyMouse()
# x=100, y=100 处左键点击两次
mouse.click(x=100, y=100, button=1, n=2)

键盘操作

键盘操作种类也有很多种,例如按下某键、释放某键、发送组合键等。PyKeyboard类下提供的方法如下:
 press_key(character):按下character键。
 release_key(character):释放character键。
 tap_key(character):轻击character键。
 tap_key(character,n,interval):连续轻击character键。参数n表示连续轻击次数,参数interval表示两次轻击之间的间隔时间。例如tap_key('l',n=2,interval=5)。
 type_string(char_string):发送字符串。
 PyKeyboard也提供了特殊键,部分特殊键如下:
 alt_key:Alt键。
 tab_key:Tab键。
 backspace_key:BackSpace键。
 return_key:Return键。
 enter_key:Enter键。
 shift_l_key:Shift+L键。
 alt_r_key:Alt+R键。
 control_r_key:Control+R键。
 cancel_key:Cancel键。
 function_keys[n]:function区域键,例如F5键就是function_keys[5]。
 numpad_keys['Home']:数字键盘键,例如Home键就是numpad_keys['Home'],数字键盘5键就是numpad_keys[5]。
例如发送字符串“Hello World!”和发送Alt+Tab组合键,代码如下:

# pykeyboard_demo.py
from pykeyboard import PyKeyboard

# 实例化键盘对象
keyboard = PyKeyboard()
# 发送 Hello World! 字符串
keyboard.type_string('Hello World!')
	
# 发送 Alt + Tab 组合键
keyboard.press_key(keyboard.alt_key)
keyboard.tap_key(keyboard.tab_key)
keyboard.release_key(keyboard.alt_key)



标签:鼠标,button,character,PyUserInput,键盘,key,keyboard,100
From: https://blog.51cto.com/u_13488416/8052692

相关文章

  • 如何打开关闭Edge鼠标手势
    概述今天突然发现edge有了一个鼠标手势,用起来不是很适应,所以决定将其关掉。操作步骤点击edge右上角的三个点在下拉菜单中选择设置点开设置之后出现如图所示的界面,然后选择外观往下面拉页面会找到启用鼠标手势的按钮,如果关闭的话就如图所示。如果需要打开edge的手势那么,......
  • 基于Python的子进程获取键盘输入
    一概念 众所周知,python中的获取键盘输入,input函数是没办法用在子程序的,这就限制了它的用途。想要在子程序中获取键盘输入。唯有fn=sys.stdin.fileno函数了。二实例解析在主进程中敲写代码fn=sys.stdin.fileno(),然后将获取到的文件描述符fn传入子进程,子进程敲写代码sys......
  • vue移动鼠标在canvas上画不规则图形(整合别人的,增加了一些功能)
    1、draw_shape.js1/**2*绘制不规则多边形3*/45import{Message}from'element-ui'67exportfunctiondraw_test(cav,list){8//画布初始化9letctx=cav.getContext('2d')10ctx.strokeStyle='red'11......
  • 12.4 组播鼠标批量执行
    组播模式相比单播模式可以提高网络的效率和带宽利用率,因为组播数据包只需要发送一次,就可以被多个接收者接收,而不需要每个接收者都单独发送一份数据包。这在需要同时向多个接收者发送相同数据的场景下特别有用,如视频会议、在线教育、流媒体等。组播模式可以减少网络拥塞,降低网络延......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-21-处理鼠标拖拽-番外篇
    1.简介前边宏哥拖拽有提到那个反爬虫机制,加了各种参数,以及加载js脚本文件还是有问题,偶尔宏哥好像发现了解决问题的办法,看到了黎明的曙光,宏哥就说试一下看看行不行,万一实现了。结果宏哥试了结果真的OK啊,但是宏哥第一次运行可以,后边就不行了,然后将编辑器关闭重启,再次运行又可以,宏哥......
  • Go笔记(3)-3种go语言的键盘输入详解
    go语言的键盘输入详解go语言中有三种输入函数,分别是:fmt.Scanf()可以按照指定的格式进行输入fmt.Scanln()通过指针将值赋值给变量fmt.Scan()(1)fmt.ScanScan从标准输入扫描文本,读取空白符分隔的值保存到传递给本函数的参数中,将换行符视为空白符使用......
  • 自已的一个小工具需要用到软键盘,就写成了个函数~
    自已的一个小工具需要用到软键盘,就写成了个函数~看图unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ExtCtrls,StdCtrls,XPMan;typeTForm1=class(TForm)Panel1:TPanel;Button1:......
  • [Vue]键盘事件
    1.Vue中常用的按键别名:   回车=>enter   删除=>delete(捕获“删除”和“退格”键)   退出=>esc   空格=>space   换行=>tab(特殊,必须配合keydown使用)   上=>up   下=>down   左=>left  右=>right2.Vue未提供别名的按键,可以使用按键原始的key值去......
  • C#实现鼠标进入按键范围后按键自动窗体内位置移动
    新建winform窗体程序添加button控件 在事件中选择MouseEnter 代码如下privatevoidbutton_MouseEnter(objectsender,EventArgse){//给按钮一个新的坐标//这个按钮活动的最大宽度就是窗体的宽度减去按钮的宽度intx=this.ClientSize.Width-button.Widt......
  • CSS 实现鼠标悬浮边框线动画效果
    一、transitionCSStransition(过渡效果)详解CSS中提供了5个有关过渡的属性,如下所示:transition-property:设置元素中参与过渡的属性;transition-duration:设置元素过渡的持续时间;transition-timing-function:设置元素过渡的动画类型;transition-delay:设置过渡效果延迟的时间,默......