第一节 pyautogui基础讲解
课程目标
- 理解自动化编程的概念及其重要性
- 掌握 pyautogui 库的安装和基本配置
- 学会使用 pyautogui 进行基本的鼠标和键盘操作
- 编写简单的自动化脚本并理解其运行原理
课程内容
1. 自动化编程与 pyautogui 概述
- 定义:自动化编程是指使用代码自动执行重复性任务的过程。
- 应用场景:网页自动化测试、自动化数据输入、游戏脚本等。
- pyautogui 简介:一个用于控制鼠标和键盘的 Python 库。
pyautogui 环境搭建
- 安装:通过命令行安装 pyautogui:
pip install pyautogui
pip install pyscreeze
pip install pillow
pip install opencv-python
- 导入库:
import pyautogui as pg
屏幕分辨率与尺寸
- 获取屏幕尺寸:
screen_width, screen_height = pg.size() print("屏幕宽度:", screen_width) print("屏幕高度:", screen_height)
鼠标操作基础
- 鼠标移动:
pg.moveTo(100, 100, duration=1)
- 鼠标点击:
pg.click()
- 鼠标拖拽:
pg.dragTo(200, 200, duration=1)
键盘操作基础
- 输入文本:
pg.write('Hello, pyautogui!', interval=0.2)
- 按键操作:
pg.press('enter')
- 热键操作:
pg.hotkey('ctrl', 'c')
故障保护与暂停功能
- 故障保护:设置故障保护时间,防止程序崩溃:
pg.PAUSE = 1
- 暂停操作:全局或局部暂停程序:
time.sleep(2) # 局部暂停
窗口操作
获取窗口
import pyautogui
pyautogui.getActiveWindowTitle() # 返回当前活动(聚焦)窗口的标题
pyautogui.getAllTitles() # 返回所有可见窗口的标题字符串列表
pyautogui.getWindowsWithTitle(“ibox”) # 返回标题文本中包含子字符'ibox'的窗口对象列表。
获取窗口属性
import pyautogui
win = pyautogui.getWindowsWithTitle('Untitled')[0] # win是title是'Untitled'的窗口对象
# 窗口对象的属性
win.size #(132,100)返回元组,窗口大小
win.width # 返回int,窗口的宽度
win.height # 返回int,窗口的高度
win.topleft # (10,10)返回元组,窗口最左上角坐标
win.bottomright # (200,200)返回元组,窗口最右下角坐标
win.top # 返回int,窗口上边缘的y坐标值
win.left # 返回int,窗口左边缘的x坐标值
win.isMaximized # 返回bool,窗口是否是最大窗口
win.isMinimized # 返回bool,窗口是否是最小窗口
操作窗口
import pyautogui
win = pyautogui.getWindowsWithTitle('Untitled')[0] # win是title是'Untitled'的窗口对象
# 窗口对象的方法
win.maximize() # 窗口最大化
win.minimize() # 窗口最大化
win.restore() # 恢复窗口大小
win.resize(200,200) # 窗口x轴增加200,y轴增加200
win.resizeTo(200,200) # 窗口变化至x轴宽度200,y轴宽度200
win.move(10, 10) # 窗口相对当前位置x轴移动10,y轴移动10
win.moveTo(10, 10) # 窗口移动至10,y轴移动至10,左上角坐标(10,10)
附录
应用场景
自动化编程是一种强大的技术,它可以在多种场景下提高效率、减少人为错误,并释放人力资源以专注于更有创造性的任务。以下是一些自动化编程的常见应用场景:
-
网页自动化:
- 表单填写和数据抓取
- 网页测试和性能监控
- 自动化网页交互,如点击、滚动等
-
数据录入与处理:
- 自动填充电子表格或数据库
- 批量处理文件,如PDF、Word文档、Excel表格等
-
邮件和日程管理:
- 自动回复邮件
- 日历事件的自动安排和提醒
-
图形用户界面(GUI)测试:
- 软件的自动化测试,包括功能测试和回归测试
- 用户界面元素的交互测试
-
游戏自动化:
- 自动执行游戏任务和战斗
- 游戏数据的收集和分析
-
系统管理:
- 自动化服务器和网络设备的配置
- 监控系统性能和自动执行维护任务
-
内容创作:
- 自动生成报告和文档
- 辅助设计和创作过程,如自动生成草图或概念图
-
社交媒体管理:
- 自动发布内容到不同的社交平台
- 监控社交媒体活动并生成报告
-
客户服务:
- 聊天机器人自动回答常见问题
- 自动化客户反馈的收集和分析
-
电子商务:
- 自动化订单处理和库存管理
- 价格监控和自动重新定价
-
科研和数据分析:
- 自动化数据收集和清洗过程
- 运行复杂的统计分析和模拟
-
教育和在线学习:
- 自动化测试和评分系统
- 个性化学习路径的推荐
-
金融和会计:
- 自动化交易和投资策略的执行
- 财务报表的生成和审计
-
法律和合规:
- 自动化合同审查和风险评估
- 合规性检查和报告生成
-
医疗健康:
- 电子健康记录的自动更新和管理
- 药物剂量和治疗计划的自动化建议