python自动化操作PyAutogui库详解

闲言碎语不讲直接上函数:

鼠标操作类:

pyautogui.click(x=None,y=None,click=1,interval=0.0,duration=0.0,button='primary')

pyautogui.leftClick(x=None, y=None, interval=0.0, duration=0.0)左键单击
pyautogui.rightClick(x=None, y=None, interval=0.0, duration=0.0)右键单击
pyautogui.middleClick(x=None, y=None, interval=0.0, duration=0.0)中键单击
pyautogui.doubleClick(x=None, y=None, interval=0.0, button='left', duration=0.0,)左键双击

pyautogui.tripleClick(x=None, y=None, interval=0.0, button='left', duration=0.0,)三连击

pyautogui.mouseDown(x=None, y=None, button='primary', duration=0.0,)移动到坐标位置鼠标按下
 pyautogui.mouseUp(x=None, y=None, button='primary', duration=0.0,)移动到坐标位置鼠标松开

 - pyautogui.mouseDown(x=None, y=None, button='primary', duration=0.0,)移动到坐标位置鼠标按下
 - pyautogui.mouseUp(x=None, y=None, button='primary', duration=0.0,)移动到坐标位置鼠标松开

参数解释:

 - x,y为鼠标坐标,
 - click为点击几次,
 - interval为每次点击间隔时间,
 - duration为执行此次动作设置时间,
 - 0就是立即执行,
 - button有几个选项默认是左键,- ``LEFT``, ``MIDDLE``, ``RIGHT``, ``PRIMARY``, or ``SECONDARY``.

其中其他函数为pyautogui.click的便捷函数,click方法可以进行一切鼠标点击操作。

注意最后两个加粗的操作,他们组合在一起就是拖动操作!!!

拖动操作便捷函数如下:

 pyautogui.dragTo(x=None, y=None, duration=0.0, button='primary',  mouseDownUp=True)
 该函数会把鼠标从当前位置拖动到指定x,y位置,并松开。**如果最后的参数mouseDownUp设置为False则鼠标只是单纯的移动,不执行按下或者松开操作,另外如果duration设置为0或者不设置,拖动也不会成功。
 pyautogui.dragRel(xOffset=0, yOffset=0, duration=0.0, button='primary', mouseDownUp=True)
 该函数为相对移动,给出的x, y,为相对于当前位置的偏移量。

鼠标单纯移动便捷方法,搞怪必备!!!

 相对移动:
 pyautogui.moveRel(xOffset=None, yOffset=None, duration=0.0)
绝对移动:
 pyautogui.moveTo(x=None, y=None, duration=0.0)

鼠标滑轮滚动:

 pyautogui.scroll(clicks, x=None, y=None)
 这是垂直滚动还是水平滚动取决于底层操作系统。
x和y参数详细说明鼠标事件发生的位置。如果没有,则
使用当前鼠标位置。如果是浮点值,则向下舍入。如果
在屏幕边界之外,事件发生在屏幕。


参数:
clicks(int,float):要执行的滚动量。
x(int,float,None,tuple,可选):屏幕上的x位置,如果是元组,则用于x和y。
y(int,float,None,可选):屏幕上的y位置

**pyauyogui.hscroll(clicks, x=None, y=None)滑轮水平移动,目前只支持linux系统**
**pyauyogui.vscroll(clicks, x=None, y=None)滑轮垂直移动,目前只支持linux系统**

---------------------------------------------------------------------------------------------------------------------

分割线以后是键盘操作方法:

想要知道pyautogui都支持哪些按键请用:
pyautogui.KEY_NAMES

按键并松开
pyautogui.press(keys, presses=1, interval=0.0)
参数:
key(str,list):要按下的键。也可以是此类字符串的列表。
press(整数,可选):按的重复次数。默认为1
间隔(浮动,可选):每次按下之间的秒数。
默认值为0.0,表示两次按下之间没有暂停。

pyautogui.typewrite(message, interval=0.0,)
参数:
message(str,list):如果是字符串,则要按的字符。如果
列表,然后按顺序按按键的键名。
间隔(浮动,可选):每次按下之间的秒数。
默认为0.0,用于在两次按下之间没有暂停
 以上两个函数有什么不同呢:
 typewrite('hello world')可以这样,而press不行
 热键输入
 pyautogui.hotkey(*args, **kwargs)**
 对按顺序传递的参数执行按下键,然后执行按相反顺序释放键。其效果是调用热键('ctrl','shift','c')将执行
“Ctrl-Shift-C”热键/键盘快捷键。
参数:
按键(str):按顺序按的一系列键。这也可以是要按的键串列表。
间隔(浮动,可选):每次按下之间的秒数。默认为0.0,用于在两次按下之间没有暂停。

-----------------------------------------------------------------------------------------------------------------------

弹窗类:

显示一个简单的带文字和OK按钮的消息弹窗。用户点击后返回button的文字。

pyautogui.alert(text='', title='', button='OK')

#显示一个简单的带文字、OK和Cancel按钮的消息弹窗,用户点击后返回被点击button的文字,支持自定义数字、文字的列表。

# OK和Cancel按钮的消息弹窗

# pyautogui.confirm(text='', title='', buttons=['OK', 'Cancel'])

# #  10个按键0-9的消息弹窗

# pyautogui.confirm(text='', title='', buttons=range(10))

# pyautogui.prompt(text='', title='' , default='')

# 可以输入的消息弹窗,带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。

# pyautogui.password(text='', title='', default='', mask='*')

# 样式同prompt(),用于输入密码,消息用*表示。带OK和Cancel按钮。用户点击OK按钮返回输入的文字,点击Cancel按钮返回None。

-----------------------------------------------------------------------------------------------------------------------------

其他杂类

如果函数运行期间想要停止,请把鼠标移动到屏幕得左上角(0,0)位置,这回引发safe错误,从而终止程序运行。

pyautogui.FAILSAFE = True #鼠标左上角触发pyautogui.FaailSafeException异常,True是默认值

pyautogui.PAUSE = 2.5#设置统一等待时间

width, height = pyautogui.size()#获取屏幕尺寸

x, y = pyautogui.position()#获取鼠标坐标

pyautogui.displayMousePosition()*用这个函数,运行后坐标会实时显示。

pyautogui.sleep()#休息方法,休息一下

pyautogui.onScreen(x, y=None)#判断给定坐标是否在屏幕内

pyautogui.center(coords)#The `coords` argument is a 4-integer tuple of (left, top, width, height),获取给定参数得中心位置,返回是相对于给定位置得中心点坐标:

 >>> center((10, 10, 6, 8))
    Point(x=13, y=14)

pyautogui.countdown(seconds):#倒计时方法,参数为给定倒计时得起始数字。

pyautogui.run(commandStr, _ssCount=None)#非常牛逼得方法,相当于一个解释器得操作了第一个参数解释如下:

“commandStr”由字符组成表示PyAutoGUI函数调用的命令。例如,`run('ccg-20,+0c')`单击鼠标两次,然后

鼠标光标向左移动20个像素,然后再次单击。忽略命令和参数之间的空白。命令字符必须是小写。引号必须是单引号。
例如,前一个调用也可以写成“run('c c g - 20,+0 c')`”。

字符命令及其等效命令如下:

`c` => `click(button=PRIMARY)`

    `l` => `click(button=LEFT)`

    `m` => `click(button=MIDDLE)`

    `r` => `click(button=RIGHT)`

    `su` => `scroll(1) # scroll up`

    `sd` => `scroll(-1) # scroll down`

    `ss` => `screenshot('screenshot1.png') # filename number increases on its own`

    `gX,Y` => `moveTo(X, Y)`

    `g+X,-Y` => `move(X, Y) # The + or - prefix is the difference between move() and moveTo()`

    `dX,Y` => `dragTo(X, Y)`

    `d+X,-Y` => `drag(X, Y) # The + or - prefix is the difference between drag() and dragTo()`

    `k'key'` => `press('key')`

    `w'text'` => `write('text')`

    `h'key,key,key'` => `hotkey(*'key,key,key'.replace(' ', '').split(','))`

    `a'hello'` => `alert('hello')`

    `sN` => `sleep(N) # N can be an int or float`

    `pN` => `PAUSE = N # N can be an int or float`

    `fN(commands)` => for i in range(N): run(commands)

 

--------------------------------------------------------------------------------------------

 im1 = pyautogui.screenshot()#返回pillow得image对象全屏截图

# im2 = pyautogui.screenshot('my_screenshot.png')

# 在一个的屏幕上,screenshot()函数要消耗100微秒——不快也不慢。

# 如果你不需要截取整个屏幕,还有一个可选的region参数。你可以把截取区域的左上角XY坐标值和宽度、高度传入截取。

# im = pyautogui.screenshot(region=(0, 0, 300 ,400))

--------------------------------------------------------------------------------------------------------

对了还有几个方法忘记了!

getAllWindows()
    Returns a list of Window objects for all visible windows.

返回所有打开窗口的对象

getWindowsAt(x, y)
    Returns a list of Window objects whose windows contain the point ``(x, y)``.

返回其窗口包含点“`(x,y)`”的窗口对象的列表。

getActiveWindow()#返回当前活动窗口对象

getActiveWindowTitle(title)#返回当前活动对象的窗口标题

getAllTitles()#返回所有的窗口标题

getWindowsWithTitle(title)#根据标题找窗口,返回窗口对象

最后美女镇楼,码字不易,看到了随手点个赞

 

  • 39
    点赞
  • 120
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

~白+黑

真乃人中龙凤,必成大器,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值