关于《python编程快速上手-让繁琐工作自动化》的学习笔记
1.安装pyautogui模块
windows上使用pip install pyautogui
安装
2.走对路
- 通过注销关闭所有程序
停止失去控制的GUI自动化程序,最简单的方法可能是注销,注销将会关闭所有运行的程序。 - 暂停和自动防故障装置
将pyautogui.PAUSE变量设置为暂停的秒数,这会在出问题的时候让你有很短的时间窗口来控制鼠标和键盘。pyautogui也有自动防故障功能,将鼠标移到屏幕的左上角,会导致pyautogui产生pyautogui.FailSafeException异常,同时将停止程序。设置pyautogui.FAILSAFE=False将禁止这项功能。
>>> import pyautogui
>>> pyautogui.PAUSE=1
>>> pyautogui.FAILSAFE=True
这里导入pyautogui并将pyautogui.PAUSE设置为1,即每次函数调用后暂停一秒;将pyautogui.FAILSAFE设置为True启动自动防故障功能。
3.控制鼠标移动
pyautogui的鼠标函数使用x,y坐标。原点的x,y都是零,在屏幕的左上角。向右x坐标增加,向下y坐标增加。所有坐标都是正整数,没有负数坐标。
分辨率是屏幕的宽和高有多少个像素,如果屏幕的分辨率为1920×1080,那么左上角的坐标是(0,0),右下角的坐标是(1919,1079)。
pyautogui.size()函数返回两个整数的元组,包含屏幕的宽和高的像素值。
>>> pyautogui.size()
Size(width=1920, height=1080)
>>> width,height=pyautogui.size()
>>> width
1920
>>> height
1080
- 移动鼠标
pyautogui.moveTo()函数将鼠标立即移动到屏幕的指定位置,表示x,y坐标的整数值分别构成了函数的第一个和第二个参数,可选的duration整数或浮点数关键字参数,制定了将鼠标移到目的位置所需的秒数,若不指定,则默认值为0,表示立即移动。
>>> for i in range(10):
... pyautogui.moveTo(100,100,duration=0.5)
... pyautogui.moveTo(200,100,duration=0.5)
... pyautogui.moveTo(200,200,duration=0.5)
... pyautogui.moveTo(100,200,duration=0.5)
pyautogui.moveRel()函数相对于当前位置移动鼠标。
>>> for i in range(10):
... pyautogui.moveRel(100,0,duration=0.25)
... pyautogui.moveRel(0,100,duration=0.25)
... pyautogui.moveRel(-100,0,duration=0.25)
... pyautogui.moveRel(0,-100,duration=0.25)
pyautogui.moveRel()也接受3个参数:向右移动多少个像素,向下垂直移动多少个像素以及花多少时间完成移动。
- 获取鼠标位置
调用pyautogui.position()函数,可以确定鼠标当前的位置,它会返回函数调用时鼠标x,y坐标的元组。
>>> pyautogui.position()
Point(x=1139, y=792)
>>> pyautogui.position()
Point(x=1674, y=478)
>>> pyautogui.position()
Point(x=1919, y=1074)
4.控制鼠标交互
- 点击鼠标
调用pyautogui.click()方法向计算机发送虚拟的鼠标点击。点击将使用鼠标左键,点击发生在鼠标当前所在位置。若想点击屏幕上的特定位置,可以传入x,y坐标作为可选的第一第二参数。如果想要指定鼠标按键,就传入button关键字参数,值分别为’left’、‘middle’、‘right’。其他:pyautogui.doubleClick()函数执行双击鼠标左键,pyautogui.rightClick()和pyautogui.middleClick()函数将分别执行双击鼠标右键和中键。pyautogui.mouseDown()模拟按下鼠标按键,pyautogui.mouseUp()模拟释放鼠标按键。 - 拖动鼠标
pyautogui模块提供pyautogui.dragTo()和pyautogui.dragRel()函数将鼠标拖动到一个新位置或相对当前位置的位置。 - 滚动鼠标
调用pyautogui.scroll()函数实现滚动鼠标的功能,向它传递一个整形参数,说明向上或向下滚动多少个单位。(正整数表示向上滚动,负整数表示向下滚动)
5.控制键盘
- 通过键盘发送一个字符串
调用pyautogui.typewrite()函数向计算机发送虚拟按键。默认情况下,typewrite()函数将立即打印出完整字符串,若传入第二参数在每个字符之间添加短时间暂停。
pyautogui.typewrite('Hello World')
- 键名
在pyautogui中,一些不能用文本字符表示的键可以表示为短的字符串值:'esc’表示Esc键,'enter’表示Enter。除单个字符串参数,还可以向typewrite()函数传递这些键字符串的列表。
>>>pyautogui.typewrite(['a','b','left','left','X','Y'])
以上调用表示按a键,然后b键,然后按左箭头两次,最后是X和Y键
PyKeyboard属性
键盘键的字符串 | 含义 |
‘a’,‘b’,‘c’,‘A’,‘B’,‘C’,‘1’,‘2’,‘3’,’!’,’@’,’#'等 | 单个字符的键 |
‘enter’(or ‘return’ or ‘\n’) | 回车键 |
‘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键 |
‘pause’ | Pause键 |
‘capslock’,‘numlock’,‘acrolllock’ | Caps Lock,Num Lock和Scroll Lock键 |
‘insert’ | Ins或Insert键 |
‘printscreen’ | Prtsc或Print Screen键 |
‘winleft’,‘winright’ | 左右Win键(windows上) |
‘command’ | Command键(OS X上) |
‘option’ | option键(OS X上) |
‘volumemute’,‘volumedown’,‘volumeup’ | 静音、减小音量、放大音量(有些键盘没有这些键,但是操作系统仍能理解) |
- 按下和释放键盘
像mouseDown()和mouseUp()函数一样,pyautogui.keyDown()和pyautogui.keyUp()将向计算机发送虚拟的按键和释放,它们根据参数发送字符串,为方便起见,pyautogui提供pyautogui.press()函数模拟完整的击键。 - 快捷键组合
调用pyautogui.hotkey()函数实现多个键的组合按下的功能。它接受多个键字符串参数,按顺序按下,再按相反的顺序释放。
>>>pyautogui.hotkey('ctrl','c')