python autogui自动测试

一、介绍
autogui是一个自动化工具,实现图形界面像命令行程序那样精确控制,比如:

  1. 通用功能
  2. 鼠标控制
  3. 键盘控制
  4. 消息窗口
  5. 截图相关

二、安装
pip install pyautogui
在这里插入图片描述

三、使用介绍

  1. 通用功能
import pyautogui

pyautogui.size()  # 获取屏幕尺寸(分辨率×分辨率)

pyautogui.position() # 获取鼠标当前位置

pyautogui.onScreen(100,200) # 判断坐标是否在屏幕范围内
pyautogui.onScreen(100,2000) # 判断坐标是否在屏幕范围内

  1. 鼠标控制
sizex,sizey=pyautogui.size() # 保存屏幕尺寸

# 绝对位置移动,移动至屏幕正中心,鼠标移动过渡时间duration设为1秒
pyautogui.moveTo(sizex/2,sizey/2,duration=1)

# 相对位置移动,向右100、向上200,鼠标移动过渡时间duration设为0.5秒
pyautogui.moveRel(100, -200, duration=0.5)

鼠标点击,一个click()函数把点鼠标的活包干,过程也可分解为mouseDown()、mouseUp();另有在click()之上封装的rightClick()、middleClick()、doubleClick()、tripleClick()等函数

# 移动至屏幕中心点击一下左键,过渡时间0.5秒
pyautogui.click(sizex/2,sizey/2, duration=0.5)

# 不指定x、y,在当前位置点击一下右键
pyautogui.click(button='right')

# 移动至(100,100)点击3次左键,点击间隔0.1s,鼠标移动过渡时间0.5秒
pyautogui.click(100,100, clicks=3,interval=0.1,duration=0.5)

# 移动至(100,100)点击2次右键,点击间隔0.5s,鼠标移动过渡时间0.2秒
pyautogui.click(100,100, clicks=2,interval=0.5,button='right',duration=0.2)

滚动鼠标滚轮
# 鼠标位置不动,向上回滚2个单位,项目文档对滚动量参数说明不详
pyautogui.scroll(2)

# 鼠标移动至(1000,700),前下滚动10个单位
pyautogui.scroll(-10,1000,700)


鼠标拖曳
# 将鼠标从当前位置拖至屏幕中心,默认左键
pyautogui.dragTo(sizex/2,sizey/2)

# 将鼠标从当前位置向左100像素、向右200像素拖动,过渡时间0.5秒,指定右键
pyautogui.dragRel(-100,200,duration=0.5,button='right')
  1. 键盘控制
# 键名用字符串表示,支持的所有键名,存在pyautogui.KEYBOARD_KEYS变量中,包括26个字母、数字、符号、F1~F20、方向等等所有按键
pyautogui.press('a') # 按字母A键,字母支持大小写

# 程序向终端输入了字符a,若程序运行时输入法为中文状态,由于没有继续输入空格或回车,输入法仅列出候选字,并不会输入到终端
 a 

# 传入键名列表(按键p、按键y、空格),按键之间间隔0.1秒(默认0)
pyautogui.press(['p','y','space'], interval=0.1)

# 运行前将输入法切换到中文状态,往终端直接输入了“培养”
培养

# typewrite方式一:传入字符串,不支持中文字符,因为函数无法知道输入法需要什么按键才能得到中文字符
pyautogui.typewrite('hello, PyAutoGUI!\n')

# 程序把字符串"'hello, PyAutoGUI!"和换行符输入到了终端
hello, PyAutoGUI!
    ...:

# typewrite方式二:传入键名列表,按键之间间隔0.1秒(默认0)
pyautogui.typewrite(['s','r','f','space'], interval=0.1)

# 运行前将输入法切换到中文状态,往终端直接输入了“输入法”3个字
输入法

# 大小写字母是自动支持的,仍然尝试一次切换到大写
pyautogui.typewrite(['capslock','p','y'])

# CapsLock按键灯被点亮,程序往终端输入了"PY"
In [14]: PY

# hotkey屏蔽了需要反复keyDown、keyUp的细节,参数是任意个键名,而非列表
 yautogui.hotkey('ctrl', 'shift', 'esc') #调出任务管理器
pyautogui.hotkey('alt','ctrl','delete') # 并未调出重启界面
  1. 消息窗口
pyautogui.alert(text='警告',title='PyAutoGUI消息框',button='OK')

 pyautogui.confirm(text='请选择',title='PyAutoGUI消息框',buttons=['1','2'
    ...: ,'3'])
 # 点击的按键被返回

pyautogui.prompt(text='请输入',title='PyAutoGUI消息框',default='请输入')

pyautogui.password(text='输入密码',title='PyAutoGUI消息框',default='',mask='*')
点OK按钮后返回输入内容
  1. 截图相关
    需要安装Pillow库
# imageFilename参数,截图要保存的文件全路径名,默认`None`,不保存;
# region参数,截图区域,由左上角坐标、宽度、高度4个值确定,如果指定区域超出了屏幕范围,超出部分会被黑色填充,默认`None`,截全屏
pyautogui.screenshot('shot.png',region=(1000,600,600,400))

四、代码示例
1、获取屏幕分辨率

import pyautogui
 
pyautogui.PAUSE = 1 # 调用在执行动作后暂停的秒数,只能在执行一些pyautogui动作后才能使用,建议用time.sleep
pyautogui.FAILSAFE = True # 启用自动防故障功能,左上角的坐标为(0,0),将鼠标移到屏幕的左上角,来抛出failSafeException异常
 
# 判断(x,y)是否在屏幕上
x, y = 122, 244
pyautogui.onScreen(x, y) # 结果为true
 
width, height = pyautogui.size() # 屏幕的宽度和高度
print(width, height)

在这里插入图片描述
2、待更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值