无论什么自动化,都避免不了模拟一些鼠标操作,pywinauto模块中也存在模拟鼠标操作方法

mouse

mouse是pywinauto一个模拟鼠标的方法库,可以帮助模拟鼠标操作,直接输入坐标就可以了。

坐标起始是在电脑屏幕的左上角开始计算。如下图:

pywinauto客户端自动化—模拟鼠标操作-风君雪科技博客

使用方法: from pywinauto import mouse 

使用鼠标操作,一般就是单击,右击。双击。长按,拖动。滑动等操作。这些pywinauto都可以帮助我们进行实践的

鼠标单击

源码:

def click(button='left', coords=(0, 0)):
    """单击指定的坐标"""
    _perform_click_input(button=button, coords=coords

使用方法:直接进行填入坐标。

# coding:utf-8
from pywinauto import mouse

# 鼠标左键
mouse.click(coords=(28,50))

鼠标右击

源码:

def right_click(coords=(0, 0)):
    """右击指定的坐标""
    _perform_click_input(button='right', coords=coords)

使用方法:

# coding:utf-8
from pywinauto import mouse

# 鼠标右键
mouse.right_click(coords=(900,400))

鼠标双击

源码:

def double_click(button='left', coords=(0, 0)):
    """双击指定的坐标"""
    _perform_click_input(button=button, coords=coords, double=True)

使用方法:

# coding:utf-8
from pywinauto import mouse

# 鼠标双击
mouse.double_click(coords=(900,400))

鼠标长按

这个长按安静理解一般可以和释放鼠标一起用,理解成我们使用的拖动

源码:

def press(button='left', coords=(0, 0)):
    """按下鼠标按钮"""
    _perform_click_input(button=button, coords=coords, button_down=True, button_up=False)

使用方法:

# coding:utf-8
from pywinauto import mouse

# 鼠标长按
mouse.press(coords=(900,400))

鼠标释放

源码:

def release(button='left', coords=(0, 0)):
    """Release the mouse button"""
    _perform_click_input(button=button, coords=coords, button_down=False, button_up=True)

使用方法:

# coding:utf-8
from pywinauto import mouse

# 释放鼠标位置
mouse.release(coords=(900,400))

滑动鼠标

源码:

def scroll(coords=(0, 0), wheel_dist=1):
    """做鼠标滚轮"""
    if wheel_dist:
        _perform_click_input(button='wheel', wheel_dist=wheel_dist, coords=coords)

使用方法:

# coding:utf-8
from pywinauto import mouse

# 鼠标上下滑动
# 数字 > 0 :向上滑动,数字 < 0 :向下滑动
mouse.scroll(coords=(900,400),wheel_dist=-1)

小试牛刀

我们通过上面的方法,然后进行实践,看看效果如何

这里安静把长按和释放放在一起了,可以更直观的看到状态

# coding:utf-8
from pywinauto import mouse
import time
# 鼠标左键
mouse.click(coords=(350,52))
time.sleep(2)
mouse.click(coords=(900,400))
# 鼠标上下滑动
# 数字 > 0 :向上滑动,数字 < 0 :向下滑动
mouse.scroll(coords=(900,400),wheel_dist=-5)
# 鼠标右键
mouse.right_click(coords=(900,400))
time.sleep(2)

time.sleep(2)
# 鼠标双击
mouse.double_click(coords=(1571,347))
time.sleep(5)
# 鼠标长按
mouse.press(coords=(900,400))
time.sleep(2)
# 释放鼠标位置
mouse.release(coords=(1333,357))

pywinauto客户端自动化—模拟鼠标操作-风君雪科技博客