Python 自动化详解(pyautogui)

文章目录

  • [1 概述](#1 概述)
    • [1.1 第三方库:pyautogui](#1.1 第三方库:pyautogui)
    • [1.2 坐标说明](#1.2 坐标说明)
  • [2 操作对象](#2 操作对象)
    • [2.1 鼠标](#2.1 鼠标)
      • [2.1.1 定位](#2.1.1 定位)
      • [2.1.2 移动](#2.1.2 移动)
      • [2.1.3 拖动](#2.1.3 拖动)
      • [2.1.4 滚动](#2.1.4 滚动)
      • [2.1.5 点击](#2.1.5 点击)
    • [2.2 键盘](#2.2 键盘)
      • [2.2.1 输入](#2.2.1 输入)
      • [2.2.2 按键](#2.2.2 按键)
      • [2.2.3 快捷键](#2.2.3 快捷键)
    • [2.3 屏幕](#2.3 屏幕)
      • [2.3.1 截图](#2.3.1 截图)
      • [2.3.2 分辨率](#2.3.2 分辨率)
    • [2.4 信息提示](#2.4 信息提示)
      • [2.4.1 提示框](#2.4.1 提示框)
      • [2.4.2 选择框](#2.4.2 选择框)
      • [2.4.3 密码输入](#2.4.3 密码输入)
      • [2.4.4 普通输入](#2.4.4 普通输入)

1 概述

1.1 第三方库:pyautogui

python 复制代码
> pip install pyautogui

1.2 坐标说明

2 操作对象

2.1 鼠标

2.1.1 定位

python 复制代码
import pyautogui

# 鼠标定位:鼠标的 x,y 坐标
position = pyautogui.position()
print(f'x = {position.x}, y = {position.y}')

2.1.2 移动

python 复制代码
import pyautogui

# 移动鼠标:两种方式
# 常用属性:x=横坐标,y=纵坐标,duration=持续时间(默认 0)
pyautogui.moveTo(x=100, y=200, duration=1)  # 方式1:移动至
pyautogui.moveRel(x=10, y=20)  # 方式2:按方向移动 x: 正右负左、y:正上负下

2.1.3 拖动

python 复制代码
import pyautogui

# 移动拖动:两种方式
# 常用属性:x=横坐标,y=纵坐标,duration=持续时间(默认 0)
pyautogui.dragTo(x=100, y=200, duration=1)  # 方式1:移动至
pyautogui.dragRel(xOffset=10, yOffset=20)  # 方式2:按方向移动 x: 正右负左、y:正上负下

2.1.4 滚动

python 复制代码
import pyautogui

# 移动滚动
pyautogui.scroll(20)

2.1.5 点击

python 复制代码
import pyautogui

# 单击鼠标
pyautogui.click(10, 20)  # 鼠标点击指定位置,默认左键
pyautogui.click(x=10, y=20, button='left')  # 左键
pyautogui.click(x=10, y=20, button='right')  # 右键
pyautogui.click(x=10, y=20, button='middle')  # 中间

# 双击鼠标
pyautogui.doubleClick(10, 10)  # 左键
pyautogui.rightClick(10, 10)  # 右键
pyautogui.middleClick(10, 10)  # 中间

# 点击 & 释放
pyautogui.mouseDown()  # 鼠标按下
pyautogui.mouseUp()  # 鼠标释放

2.2 键盘

2.2.1 输入

python 复制代码
import pyautogui


pyautogui.write('Hello World')  # 立即输出
pyautogui.write('Hello World', interval=0.5)  # 间隔0.5s输出

2.2.2 按键

python 复制代码
import pyautogui

pyautogui.keyDown('enter')  # 按下指定键
pyautogui.keyUp('enter')  # 松开指定键

# 效果同上
pyautogui.press('enter')  # 按一次指定键

注:暂不支持中文

键盘字符串 说明
enter 回车键
tab TAB 键
space 空格键
up、down、left、right 方向键
ctrl Ctrl 键
... ...

2.2.3 快捷键

python 复制代码
pyautogui.hotkey('ctrl', 'a')  # 选中
pyautogui.hotkey('ctrl', 'c')  # 复制
pyautogui.hotkey('ctrl', 'v')  # 粘贴


pyautogui.hotkey('ctrl', 'alt', 'a')

2.3 屏幕

2.3.1 截图

python 复制代码
import pyautogui


img = pyautogui.screenshot()
img.save('屏幕截图.jpg')

2.3.2 分辨率

python 复制代码
import pyautogui

size = pyautogui.size()
print(size)  # Size(width=1366, height=768)

# 坐标原点(0, 0), 坐标终点(width-1, height-1)
print(pyautogui.onScreen(1366, 768))  # False
print(pyautogui.onScreen(1365, 767))  # True

2.4 信息提示

2.4.1 提示框

python 复制代码
import pyautogui

text = pyautogui.alert(text="这是一个提示框", title='提示')
print(text)  # OK

2.4.2 选择框

python 复制代码
import pyautogui

text = pyautogui.confirm('请选择一项', buttons=['选项 A', '选项 B', '选项 C'])
print(text)  # buttons 中的取值

2.4.3 密码输入

python 复制代码
import pyautogui

text = pyautogui.password('请输入密码:')
print(text)

2.4.4 普通输入

python 复制代码
import pyautogui

text = pyautogui.prompt('请输入:')
print(text)
相关推荐
Chef_Chen6 分钟前
从0开始机器学习--Day17--神经网络反向传播作业
python·神经网络·机器学习
百事老饼干10 分钟前
Java[面试题]-真实面试
java·开发语言·面试
千澜空25 分钟前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩33 分钟前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
杨荧1 小时前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
白子寰1 小时前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan201903131 小时前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁1 小时前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev1 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
王俊山IT1 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习