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)
相关推荐
翔云API5 分钟前
身份证识别接口的应用场景和作用
运维·服务器·开发语言·自动化·ocr
FL162386312911 分钟前
基于yolov5的混凝土缺陷检测系统python源码+onnx模型+评估指标曲线+精美GUI界面
人工智能·python·yolo
学java的小菜鸟啊18 分钟前
第五章 网络编程 TCP/UDP/Socket
java·开发语言·网络·数据结构·网络协议·tcp/ip·udp
立黄昏粥可温22 分钟前
Python 从入门到实战22(类的定义、使用)
开发语言·python
PerfMan25 分钟前
基于eBPF的procstat软件追踪程序垃圾回收(GC)事件
linux·开发语言·gc·ebpf·垃圾回收·procstat
聆听HJ33 分钟前
java 解析excel
java·开发语言·excel
溪午闻璐37 分钟前
C++ 文件操作
开发语言·c++
环能jvav大师1 小时前
基于R语言的统计分析基础:使用SQL语句操作数据集
开发语言·数据库·sql·数据分析·r语言·sqlite
吱吱鼠叔1 小时前
MATLAB方程求解:1.线性方程组
开发语言·matlab·php