Python中pyautogui库的使用方法汇总
pyautogui是Python中一个非常实用的自动化工具库,能够模拟鼠标和键盘操作,实现自动化的任务流程。本篇文章将对pyautogui库的使用方法进行详细讲解,包含以下内容:
- 安装pyautogui库
- 基本操作:鼠标移动、点击、拖拽、键盘输入等
- 屏幕控制:屏幕截图、获取像素RGB值、查找图像位置等
- 使用案例:自动化登录网站,自动填写表单
安装pyautogui库
使用pip可以轻松安装pyautogui库,只需在命令行中输入以下命令即可:
pip install pyautogui
基本操作
鼠标操作
在pyautogui中,鼠标相关的操作有moveTo(x, y)、click(x, y, button='left')、rightClick(x, y)、dragTo(x, y, duration=0.0, button='left')、scroll(clicks=1)等方法。这些方法分别实现了移动鼠标、点击、右击、拖拽、滚动等操作。其中,x和y分别为屏幕上的像素坐标,left表示左击、right表示右击。
示例代码1:移动鼠标并左击
import pyautogui
# 移动到屏幕坐标(300, 300)的位置
pyautogui.moveTo(300, 300)
# 左击
pyautogui.click()
键盘操作
在pyautogui中,键盘相关的操作有keyDown(key)、keyUp(key)、press(key)等方法,分别实现按下、释放和输入键盘按键操作。其中,key表示按键的名称或键码,可以参考键盘按键名称和键码的对照表。
示例代码2:输入Hello World!
import pyautogui
# 按下Shift键
pyautogui.keyDown('shift')
# 按下H键
pyautogui.press('h')
# 松开Shift键
pyautogui.keyUp('shift')
# 输入ello World!
pyautogui.typewrite('ello World!')
屏幕控制
屏幕截图
在pyautogui中,截屏相关的操作有screenshot()、screenshot(region=None)等方法。其中,screenshot()将会截取整个屏幕,screenshot(region=box)将会截取指定区域的屏幕,box是一个4元组,分别是(left, top, width, height),表示左上角的x、y坐标和宽度、高度。
示例代码3:截屏并保存为文件
import pyautogui
# 截取整个屏幕
im = pyautogui.screenshot()
# 保存为文件
im.save('screenshot.png')
获取像素RGB值
在pyautogui中,获取像素RGB值的操作有pixel(x, y)、pixelMatchesColor(x, y, color, tolerance=0)等方法。其中,pixel(x, y)返回屏幕上像素点的RGB值,pixelMatchesColor(x, y, color, tolerance=0)返回像素点的颜色是否匹配,color是tuple类型的值,表示RGB值。
示例代码4:获取屏幕(100, 200)处的像素RGB值及匹配颜色
import pyautogui
# 获取RGB值
r, g, b = pyautogui.pixel(100, 200)
# 显示RGB值
print(r, g, b)
# 检查颜色是否匹配
isMatch = pyautogui.pixelMatchesColor(100, 200, (r, g, b), tolerance=10)
print(isMatch)
查找图像位置
在pyautogui中,查找图像位置的操作有locateOnScreen(image, grayscale=False, confidence=0.999)、locateCenterOnScreen(image, grayscale=False, confidence=0.999)等方法。其中,image表示需要查找的图像,grayscale表示是否以灰度图模式来匹配,confidence为匹配的置信度,取值范围为0~1。
示例代码5:查找某张图像及其中心位置
import pyautogui
# 从屏幕上查找某张图像
location = pyautogui.locateOnScreen('image.png')
# 如果找到了,就将鼠标移动到图像中心
if location:
center = pyautogui.locateCenterOnScreen('image.png')
pyautogui.moveTo(center)
pyautogui.click()
使用案例
下面,我们将利用pyautogui库实现自动化登录网站和自动填写表单的功能。
自动化登录网站
实现自动化登录网站,需用到鼠标点击和键盘输入操作。
示例代码6:自动化登录某个网站(假设该网站的登录框在屏幕底部中央)
import pyautogui
# 移动到登录框位置
pyautogui.moveTo(pyautogui.size().width/2, pyautogui.size().height - 100)
# 点击
pyautogui.click()
# 输入用户名
pyautogui.typewrite('username')
# 切换到下一输入框
pyautogui.press('tab')
# 输入密码
pyautogui.typewrite('password')
# 切换到登录按钮
pyautogui.press('tab')
pyautogui.press('tab')
# 点击登录
pyautogui.press('enter')
自动填写表单
实现自动填写表单,需用到键盘输入操作和屏幕截图操作。
示例代码7:自动填写某个表单(假设该表单有3个输入框,需要依次填入姓名、性别和年龄)
import pyautogui
# 打开表单页面
pyautogui.typewrite('chrome\n')
pyautogui.typewrite('http://www.example.com/form.html\n')
# 等待页面加载完成
time.sleep(3)
# 截取屏幕中表单的区域
form_box = (100, 100, 600, 400) # (left, top, width, height)
form_im = pyautogui.screenshot(region=form_box)
# 读取姓名输入框的坐标
name_box = (100, 100, 400, 50) # (left, top, width, height)
name_im = form_im.crop(name_box)
name_location = pyautogui.locateOnScreen(name_im)
# 如果找到了姓名输入框,就填入姓名
if name_location:
name_center = pyautogui.locateCenterOnScreen(name_im)
pyautogui.moveTo(name_center)
pyautogui.click()
pyautogui.typewrite('张三')
# 读取性别输入框的坐标
sex_box = (100, 200, 400, 50) # (left, top, width, height)
sex_im = form_im.crop(sex_box)
sex_location = pyautogui.locateOnScreen(sex_im)
# 如果找到了性别输入框,就填入性别
if sex_location:
sex_center = pyautogui.locateCenterOnScreen(sex_im)
pyautogui.moveTo(sex_center)
pyautogui.click()
pyautogui.typewrite('男')
# 读取年龄输入框的坐标
age_box = (100, 300, 400, 50) # (left, top, width, height)
age_im = form_im.crop(age_box)
age_location = pyautogui.locateOnScreen(age_im)
# 如果找到了年龄输入框,就填入年龄
if age_location:
age_center = pyautogui.locateCenterOnScreen(age_im)
pyautogui.moveTo(age_center)
pyautogui.click()
pyautogui.typewrite('28')
以上就是pyautogui库的使用方法汇总,包含了常用的操作方法和两个实用的自动化操作案例,希望能对大家的自动化测试或自动化操作有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中pyautogui库的使用方法汇总 - Python技术站