前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐一个比较好的操作鼠标键盘的python库

推荐一个比较好的操作鼠标键盘的python库

作者头像
赵云龙龙
发布2020-12-15 10:36:42
7.6K0
发布2020-12-15 10:36:42
举报
文章被收录于专栏:python爱好部落

最近由于在家办公,很多东西在家没法访问。 于是我想自动操作,将daily build放到teams的公司共享盘里。这样就可以在家访问了。 结果遇到了一个难题。文件上传框是系统的。没法点。 先考虑autoit,感觉不是很理想。 然后用到了 pykeyboard.PyKeyboard() 和pymouse.PyMouse(),感觉也不是太理想 后面还尝试过pyautoit,也不理想。 最后找到了pyautogui

PyAutoGUI是一个纯Python的GUI自动化工具,其目的是可以用程序自动控制鼠标和键盘操作,多平台支持(Windows,OS X,Linux)。

从pip安装即可。

代码语言:javascript
复制
pip install pyautogui
鼠标操作函数

操作鼠标点击的函数。

代码语言:javascript
复制
move(x,y)、 moveTo(x,y)

移动鼠标,前者移动相对位置,后者移动到指定位置

代码语言:javascript
复制
click(x,y)、doubleClick、rightClick

单击/双击/右击,无参版本在当前位置点击鼠标

代码语言:javascript
复制
drag(x,y)、dragTo(x,y)

拖动鼠标

代码语言:javascript
复制
mouseDown、mouseUp

按下按键,松开按键

代码语言:javascript
复制
scroll

向下滚动鼠标滚轮的函数

键盘操作函数

操作键盘按键的函数。

代码语言:javascript
复制
press('left',press=3)

hotkey('ctrl','s')

按下Ctrl+S组合键

代码语言:javascript
复制
keyDown、keyUp

按下和松开键盘按键

提示框函数

PyAutoGUI可以显示提示框,这时候程序会暂停运行,直到用户点击提示框。 alert(text='',title='',button=['OK','Cancle']) 显示警告对话框 confirm() 显示确认对话框 prompt() 显示提示对话框 password() 显示密码输入对话框

屏幕截图和定位函数

截取屏幕的函数,也可以从屏幕中寻找匹配的图片,并返回其坐标。你可以事先保存一些按钮的截图,然后通过这种方式定位按钮的位置,然后点击。 screenshot('image.png') 保存截图并返回截图,无参版本直接返回截图不保存 center('image.png') 从屏幕上寻找图片位置,返回框位置 locateOnScreen('img') 从屏幕寻找图片位置,直接返回坐标

下面来看一些例子

pyautogui鼠标操作样例

代码语言:javascript
复制
import pyautogui

# 获取当前屏幕分辨率
screenWidth, screenHeight = pyautogui.size()

# 获取当前鼠标位置
currentMouseX, currentMouseY = pyautogui.position()

# 2秒钟鼠标移动坐标为100,100位置  绝对移动
#pyautogui.moveTo(100, 100,2)
pyautogui.moveTo(x=100, y=100,duration=2, tween=pyautogui.linear)

#鼠标移到屏幕中央。
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

# 鼠标左击一次
#pyautogui.click()
# x 
# y 
# clicks 点击次数
# interval点击之间的间隔
# button 'left', 'middle', 'right' 对应鼠标 左 中 右或者取值(1, 2, or 3)
# tween 渐变函数
#
pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

# 鼠标相对移动 ,向下移动
#pyautogui.moveRel(None, 10)
pyautogui.moveRel(xOffset=None, yOffset=10,duration=0.0, tween=pyautogui.linear)

# 鼠标当前位置0间隔双击
#pyautogui.doubleClick()
pyautogui.doubleClick(x=None, y=None, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

# 鼠标当前位置3击
#pyautogui.tripleClick()
pyautogui.tripleClick(x=None, y=None, interval=0.0, button='left', duration=0.0, tween=pyautogui.linear)

#右击
pyautogui.rightClick()

#中击
pyautogui.middleClick()

#  用缓动/渐变函数让鼠标2秒后移动到(500,500)位置
#  use tweening/easing function to move mouse over 2 seconds.
pyautogui.moveTo(x=500, y=500, duration=2, tween=pyautogui.easeInOutQuad)

#鼠标拖拽
pyautogui.dragTo(x=427, y=535, duration=3,button='left')

#鼠标相对拖拽
pyautogui.dragRel(xOffset=100,yOffset=100,duration=,button='left',mouseDownUp=False)

#鼠标移动到x=1796, y=778位置按下
pyautogui.mouseDown(x=1796, y=778, button='left')

#鼠标移动到x=2745, y=778位置松开(与mouseDown组合使用选中)
pyautogui.mouseUp(x=2745, y=778, button='left',duration=5)

#鼠标当前位置滚轮滚动
pyautogui.scroll()
#鼠标水平滚动(Linux)
pyautogui.hscroll()
#鼠标左右滚动(Linux)
pyautogui.vscroll()

pyautogui键盘操作样例

代码语言:javascript
复制
#模拟输入信息
pyautogui.typewrite(message='Hello world!',interval=0.5)
#点击ESC
pyautogui.press('esc')
# 按住shift键
pyautogui.keyDown('shift')
# 放开shift键
pyautogui.keyUp('shift')
# 模拟组合热键
pyautogui.hotkey('ctrl', 'c')

提示信息

alert

代码语言:javascript
复制
#pyautogui.alert('This is an alert box.','Test')
pyautogui.alert(text='This is an alert box.', title='Test')

在这里插入图片描述

option

代码语言:javascript
复制
#pyautogui.confirm('Shall I proceed?')
pyautogui.confirm('Enter option.', buttons=['A', 'B', 'C'])

在这里插入图片描述

password

代码语言:javascript
复制
a = pyautogui.password('Enter password (text will be hidden)')
print(a)

在这里插入图片描述

prompt

代码语言:javascript
复制
a = pyautogui.prompt('input  message')
print(a)

在这里插入图片描述

截屏

整个屏幕截图并保存

代码语言:javascript
复制
im1 = pyautogui.screenshot()
im1.save('my_screenshot.png')

im2 = pyautogui.screenshot('my_screenshot2.png')

屏幕查找图片位置并获取中间点

代码语言:javascript
复制
#在当前屏幕中查找指定图片(图片需要由系统截图功能截取的图)
coords = pyautogui.locateOnScreen('folder.png')
#获取定位到的图中间点坐标
x,y=pyautogui.center(coords)
#右击该坐标点
pyautogui.rightClick(x,y)

用起来感觉还可以。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python粉丝团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pyautogui鼠标操作样例
  • pyautogui键盘操作样例
  • 提示信息
    • alert
      • option
        • password
          • prompt
          • 截屏
            • 整个屏幕截图并保存
              • 屏幕查找图片位置并获取中间点
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档