PyAutoGUI——图形用户界面自动化

PyAutoGUI模块通过屏幕xy坐标系统确定目标位置,控制鼠标和键盘发送虚拟击键和鼠标点击,完成点击按钮、填写表单等操作,在没有模块对应你要操作的无聊任务的时候,也不失为一个不错的选择。

 

PyAutoGUI的坐标轴系统

pyautogui的鼠标函数使用x,y坐标,原点在屏幕左上角,向右x坐标增加,向下y坐标增加,所有坐标都是正整数,没有负数坐标。如图所示:

pyautogui.size()            #返回屏幕宽高像素数的元组
                            #例如,如果屏幕分辨率为1920*1080,那么左上角的坐标为(0,0),
                            #右下角的坐标是(1919,1079)

I. 控制鼠标

(1)确定鼠标当前位置

pyautogui.position()      #确定鼠标当前位置,返回x,y坐标的元组

(2)移动

pyautogui.moveTo(x,y[,duration = t])  # 将鼠标移动到屏幕指定位置,
                                      #x,y是目标位置的横纵坐标,duration指定鼠标光标移动到目标位置
                                      #所需要的秒数,t可以为整数或浮点数,省略duration参数表示
                                      #立即将光标移动到指定位置(在PyAutoGUI函数中,所有的duration
                                      #关键字参数都是可选的)
                                      #Attention:所有传入x,y坐标的地方,都可以用坐标x,y
                                      #的元组或列表替代,(x,y)/[x,y]

pyautogui.moveRel(x,y[,duration = t]) #相对于当前位置移动光标,
                                      #这里的x,y不再是目标位置的坐标,而是偏移量,
                                      #如,pyautogui.moveRel(100,0,duration=0.25)
                                      #表示光标相对于当前所在位置向右移动100个像素

(3)点击

完整的点击:按下鼠标按键,然后放开,同时不移动位置

pyautogui.mouseDown()   #按下鼠标按键(左键)

pyautogui.mouseUp()     #释放鼠标按键(左键)

pyautogui.click()       #向计算机发送虚拟的鼠标点击(click()函数只是前面两个函数调用的方便封装)
                        #默认在当前光标位置,使用鼠标左键点击

pyautogui.click([x,y,button='left/right/middle'])  #在(x,y)处点击鼠标左键、右键、中键
                                                   #但不推荐使用这种方法,下面这种方法效果更好
                                                   #pyautogui.moveTo(x,y,duration=t)
                                                   #pyautogui.click()
pyautogui.doubleClick() #双击鼠标左键

pyautogui.rightClick()  #单击鼠标右键

pyautogui.middleClick() #单击鼠标中键

(4)拖动

拖动:按住一个键不放,同时移动鼠标

pyautogui.dragTo(x,y[,duration=t)      #将鼠标拖动到指定位置
                                       #x,y:x坐标,y坐标

pyautogui.dragRel(x,y[,duration=t])    #将鼠标拖动到相对当前位置的位置
                                       #x,y:水平移动,垂直移动

(5)滚动

pyautogui.scroll()         #控制窗口上下滚动(滚动发生在鼠标的当前位置)
                           #正数表示向上滚动,负数表示向下滚动,
                           #滚动单位的大小需要具体尝试

 

#eg
sleep(2)
click()
moveTo((1418,12),duration=2)
click()
moveTo([1392,47],duration=1)
click()
typewrite('https://wwww.baidu.com')
typewrite(['enter'])

II. 控制键盘

(1)输入字符串

pyautogui.typewrite(s[,duration=t])      #向文本框发送字符串
                                         #可选的duration参数在输入单个字符之间添加短暂的时间暂停
                                         #Attention:只能用于输入英文

 

(2)输入键字符串

不是所有的键都很容易用单个文本字符来表示。例如,如何把Shift键或左箭头键表示为单个字符串?在PyAutoGUI中,这些键表示为短的字符串值,如'esc'表示Esc键,'enter'表示Enter,我们把这些字符串称之为键字符串。

 

pyautogui.typewrite([键盘键字符串])      #除了单个字符串,还可以向typewrite()函数传递键字符串的列表
                                         #如 pyautogui.typewrite(['a','b','left','left','X','Y'])
                                         #按'a'键,'b'键,然后按左箭头两次,然后按'X'和'Y'
                                         #输出结果为XYab

pyautogui.keyDown()        #根据传入的键字符串,向计算机发送虚拟的按键(按下)

pyautogui.keyUp()          #根据传入的键字符串,向计算机发送虚拟的释放(释放)

pyautogui.press()          #前面两个函数的封装,模拟完整的击键(按下并释放)

 

举例:

pyautogui.keyDown('shift');pyautogui.press('4');pyautogui.keyUp('shift')
#按下Shift,按下并释放4,然后释放Shift

 

完整的键字符串如下:

键盘键字符串                        含义
'a','b','c','A','C','1','2','3',    单个字符的键
'!','@','#'等

'enter'                             回车

‘esc'                              ESC键

'shiftleft','shiftright'            左右Shift键

'altleft','altright'                左右Alt键

'ctrlleft','ctrlright'              左右Ctrl键

‘tab'(or '\t')                     Tab键

'backspace','delete'                Backspace键和Delete键

'pageup','pagedown'                 Page Up 和Page Down键

'home','end'                        Home键和End键

'up','down','left','right'          上下左右箭头键

'f1','f2','f3'等                    F1至F12键

'volumemute','volumeup',volumedown' 静音,放大音量和减小音量键

'pause'                             暂停键

'capslock','numlock','scrolllock'   Caps Lock,Num Lock和 Scroll Lock键

'insert'                            Insert键

'printscreen'                       Prtsc或Print Screen键

'winleft','winright'                左右Win键(在windows上)

'command'                           Command键(在OS X上)

'option'                            Option键(在OS X上)

 

(3)快捷键组合

pyautogui.hotkey()           #接收多个字符串参数,顺序按下,再按相反的顺序释放

 

举例:

pyautogui.hotkey('ctrl','c')  #按住Ctrl键,然后按C键,然后释放C键和Ctrl键

相当于

pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值