前言
不论是模拟鼠标操作还是键盘操作,实际上我们都使用了pywinauto
这个库里面的内容。
模拟鼠标操作,我们直接调用pywinauto.mouse
这个模块里面的各个方法即可;而模拟键盘输入,我们则需要用到pywinauto.keyboard
这个模块里面的SendKeys(keyname)
方法。
模拟鼠标动作
模拟鼠标操作,首先需要获取当前连接的窗口,然后再调用相应模块里面的方法:
from airtest.core.api import * auto_setup(__file__) # 获取当前连接的窗口 dev = device() # 拿到鼠标,并模拟鼠标的右键点击操作 dev.mouse.right_click(coords=(1920,100)) 复制代码
在pywinauto.mouse
这个模块里,还提供了很多常用的鼠标操作的方法:
# 鼠标点击操作,可以修改coords来指定点击位置 pywinauto.mouse.click(button='left', coords=(0, 0)) # 鼠标双击操作,可以修改coords来指定双击位置 pywinauto.mouse.double_click(button='left', coords=(0, 0)) # 移动鼠标,可以修改coords使鼠标移动到指定位置 pywinauto.mouse.move(coords=(0, 0)) # 鼠标右键点击,可以修改coords来指定右键点击位置 pywinauto.mouse.right_click(coords=(0, 0)) # 鼠标滚动操作,可以修改coords来指定滚动位置,修改wheel_dist来指定滚动距离 pywinauto.mouse.scroll(coords=(0, 0), wheel_dist=1) 复制代码
模拟键盘输入
调用Airtest封装好的keyevent方法
比较特别的是,Airtest
里面还有封装好的keyevent
方法,来供我们发送键盘事件。从下面的源码可以看出,这个方法其实也是用的pywinauto
库里面的内容。
只要连接了窗口设备,我们就可以直接使用Airtest
封装好的keyevent
方法来模拟键盘输入,可以省略获取当前窗口的操作:
from airtest.core.api import * auto_setup(__file__) # 模拟键盘输入^a和DELETE事件 keyevent("^a") keyevent("{DELETE}") 复制代码
调用SendKeys方法
与模拟鼠标操作类似,调用pywinauto.keyboard
模块里面的SendKeys(keyname)
方法,也需要先获取当前连接的窗口:
from airtest.core.api import * auto_setup(__file__) # 获取当前连接的窗口 dev = device() # 拿到键盘,模拟输入^a,^a代表Ctrl+A,即全选 dev.keyboard.SendKeys("^a") dev.keyboard.SendKeys("{DELETE}") 复制代码
注意,这里的keyname
需要用""
括起来。更多keyname
可以参考下图: