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)
相关推荐
陌小呆^O^3 分钟前
Cmakelist.txt之win-c-udp-server
c语言·开发语言·udp
Gu Gu Study10 分钟前
枚举与lambda表达式,枚举实现单例模式为什么是安全的,lambda表达式与函数式接口的小九九~
java·开发语言
时光の尘25 分钟前
C语言菜鸟入门·关键字·float以及double的用法
运维·服务器·c语言·开发语言·stm32·单片机·c
以后不吃煲仔饭39 分钟前
Java基础夯实——2.7 线程上下文切换
java·开发语言
进阶的架构师39 分钟前
2024年Java面试题及答案整理(1000+面试题附答案解析)
java·开发语言
前端拾光者43 分钟前
利用D3.js实现数据可视化的简单示例
开发语言·javascript·信息可视化
程序猿阿伟1 小时前
《C++ 实现区块链:区块时间戳的存储与验证机制解析》
开发语言·c++·区块链
运维老司机1 小时前
Jenkins修改LOGO
运维·自动化·jenkins
傻啦嘿哟1 小时前
如何使用 Python 开发一个简单的文本数据转换为 Excel 工具
开发语言·python·excel
大数据编程之光1 小时前
Flink Standalone集群模式安装部署全攻略
java·大数据·开发语言·面试·flink