Python 自动化详解(pyautogui)

文章目录

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

1 概述

1.1 第三方库:pyautogui

> pip install pyautogui

1.2 坐标说明

在这里插入图片描述

2 操作对象

2.1 鼠标

2.1.1 定位

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

2.1.2 移动

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 拖动

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 滚动

import pyautogui# 移动滚动
pyautogui.scroll(20)

2.1.5 点击

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 输入

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

2.2.2 按键

import pyautoguipyautogui.keyDown('enter')  # 按下指定键
pyautogui.keyUp('enter')  # 松开指定键# 效果同上
pyautogui.press('enter')  # 按一次指定键

注:暂不支持中文

键盘字符串说明
enter回车键
tabTAB 键
space空格键
up、down、left、right方向键
ctrlCtrl 键

2.2.3 快捷键

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

2.3 屏幕

2.3.1 截图

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

2.3.2 分辨率

import pyautoguisize = 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 提示框

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

在这里插入图片描述

2.4.2 选择框

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

在这里插入图片描述

2.4.3 密码输入

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

在这里插入图片描述

2.4.4 普通输入

import pyautoguitext = pyautogui.prompt('请输入:')
print(text)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsp 网上订餐Myeclipse开发mysql数据库web结构java编程计算机网页项目

选题目的 本设计课题为网上订餐系统设计与实现,提供无纸化点餐、支付,实现点餐快捷,方便管理。餐厅电子化是目前的潮流和趋势,大多数企业都将公司内部运营流程电子化。网上订餐管理系统应运而生,能够有效提高公司的管…

记一次老商家端应用内存突然飚高原因分析 | 京东物流技术团队

一、排查过程 问题发现是因为当时接到了内存UMP报警信息,如下: 通过查看PFinder发现内存一直在增长,没有停止迹象,触发fullGC也并没有下降趋势: 当机立断,先立即去NP上摘除了此台机器流量,然后…

发布一站式反电诈工具,合合信息商业大数据技术助力银行守护群众“钱袋子”

近期,电影《孤注一掷》在社交媒体上引起了广泛的讨论,社会各界对于电信网络诈骗案件的关注度日益提升。真实世界中的电诈涉及金额之大、团伙成员之多,往往比电影更甚。为此,国家不断加大对电信诈骗的打击力度,出台《反…

低功耗设计-ir drop的signoff corner怎么选择?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接: Multi Voltage Flow笔记 有几个方向,看公司需求吧 1.功耗最差的; 2.tt的(tt85 是比较接近芯片真实工作情况的&#xff09…

C# 如何反射获取常量值

首先,常量是一个字段,所以需要从字段中获取该值。 但是需要传入的BindingFlags是什么,与其盲猜,不如直接反射所有字段值,查看其中的常量有哪些特性和bool值来判断。 ...static void Main(string[] args){var type typ…

【javaweb】学习日记Day13 - AOP 事务管理 切入点 连接点

目录 一、完善解散部门功能 二、spring 事务 (1)Transactional 事务管理 ① rollbackFor 控制异常类型 ② propagation 事务传播控制 1、定义解散部门操作日记 三、AOP基础 1、概述 2、快速入门 (1)案例:统…

RabbitMQ初入门

1、RabbitMQ是什么 RabbitMQ是“实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均…

STM32的bootloader程序(通过串口更新STM32应用程序)

1 什么是bootloader? Bootloader,也被称为引导加载程序,是操作系统启动过程中的一个重要组成部分。它是存储在非易失性存储器中的一段小程序,负责在操作系统内核运行之前加载并启动一些必要的系统组件。 当计算机开机后&#xff0…

ICC2: 如何在显示GUI操作产生的命令

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ICC2:自定义快捷键和菜单 VIEW -> Perference -> Global Settings 把display commands in logging console 下面几个都勾上即可。

css:button实现el-radio效果

先看最终效果&#xff1a; ​​​ 思路&#xff1a; 一、 首先准备好按钮内容&#xff1a;const a [one,two,three] 将按钮循环展示出来&#xff0c;并设置一些样式&#xff0c;将按钮背景透明&#xff1a; <button v-for"(item,index) in a" :key"in…

实战之巧用header头

案例&#xff1a; 遇到过三次 一次是更改accept&#xff0c;获取到tomcat的绝对路径&#xff0c;结合其他漏洞获取到shell。 一次是更改accept&#xff0c;越权获取到管理员的MD5加密&#xff0c;最后接管超管权限。 一次是更改accept&#xff0c;结合参数获取到key。 这里以越…

如何选购适合自己的内衣洗衣机?性价比高内衣洗衣机推荐

内衣洗衣机&#xff0c;在几年前或许是个新事物&#xff0c;但近两年却是成为了很普遍的家电产品&#xff0c;由于近几年内衣洗衣机需求量的增加&#xff0c;我们在商场的电子产品区都能见到它&#xff0c;就像普通的家庭洗衣机那样&#xff0c;直接摆在展台上销售&#xff0c;…

VPS是什么?详解亚马逊云科技Amazon Lightsail(VPS)虚拟专用服务器

2006年&#xff0c;南非开普敦&#xff0c;亚马逊推出了WBS&#xff0c;以网络服务的形式向企业提供基础的IT服务。亚马逊云科技的一小步&#xff0c;在无数技术更迭&#xff0c;天才设计师和程序员的努力与基础设施建设的完善之下成为了人类科技进展的一大步。 亚马逊云科技可…

【Spring Boot 源码学习】RedisAutoConfiguration 详解

Spring Boot 源码学习系列 RedisAutoConfiguration 详解 引言往期内容主要内容1. Spring Data Redis2. RedisAutoConfiguration2.1 加载自动配置组件2.2 过滤自动配置组件2.2.1 涉及注解2.2.2 redisTemplate 方法2.2.3 stringRedisTemplate 方法 总结 引言 上篇博文&#xff0…

携手云栖,共望未来

&#x1f4a8;随着信息技术的迅猛发展&#xff0c;云计算已成为推动数字经济发展的重要驱动力之一。在这个领域中&#xff0c;云栖大会无疑是中国乃至全球最重要的盛会之一。云栖大会的历史可以追溯到2009年的地方网站峰会&#xff0c;随着时间的推移&#xff0c;它逐渐演变为阿…

如何在Instagram和kol展开合作

网红营销已经演变成一个由品牌、MCN机构、红人和消费者组成的复杂生态系统&#xff0c;并在某种程度上重新定义了当今社交媒体时代营销和广告的本质。在这个情况下&#xff0c;品牌找红人进行营销推广已经成为大势&#xff0c;而最能体现网红营销发展的莫过于Instagram这个平台…

数据结构(三):栈及面试常考的算法

一、栈介绍 1、定义 栈也是一种数据呈线性排列的数据结构&#xff0c;不过在这种结构中&#xff0c;我们只能访问最新添加的数据。从栈顶放入元素的操作叫入栈&#xff0c;取出元素叫出栈。 2、优缺点及使用场景 优点&#xff1a;高效的操作、简单易用、空间效率高等 缺点&…

【SpringSecurity】快速入门—通俗易懂

目录 1.导入依赖 2.继承WebSecurityConfigurerAdapter 3.实现UserDetailsService 4.记住我 5.用户注销 6.CSRF理解 7.注解功能 7.1Secured 7.2PreAuthorized 7.3PostAuthorized 7.4PostFilter 7.5ZPreFilter 8.原理解析 1.导入依赖 首先&#xff0c;在pom.xml文…

计算机网络-IP地址

文章目录 子网划分定长子网划分子网划分的方法子网掩码 可变长子网划分 无类别编址网络前缀路由聚合 特殊用途的IP地址专用网络地址链路本地地址运营商级NAT共享地址用于文档的测试网络地址 IP地址的规划和分配IP地址的规划和分配方法IP地址的规划和分配实例 子网划分 定长子网…

文章分类管理接口

目录 前言 新建表 获取文章分类列表接口 初始化路由模块 将路由对象导出并使用 初始化路由对象处理函数 修改路由代码 导入数据库 定义sql语句 调用db.query() 完整的获取文章分类列表处理函数 新增文章分类接口 定义路由和处理函数 验证表单数据 查询分类名称与…