Python的pyautogui库(鼠标,键盘操作篇)

2023-11-19

图片操作篇可以观看https://blog.csdn.net/m0_61741706/article/details/126898616

pyautogui库可以模仿人去点击输出和键盘,相比selenium库,pyautogui库更方便,更便捷

下载就用pip直接下载,后者用清华源下载

pip install pyautogui

 出现这样就是下载成功

之后引入库,并判断电脑屏幕的分辨率

import pyautogui

size = pyautogui.size()  # 获取屏幕大小
print(size)
mouse = pyautogui.position()#获取鼠标位置
print(mouse)

接下来是控制鼠标移动

duration参数是移动的时间

moveTo是鼠标正常移动(以屏幕左上角为(0,0)移动的想要移动的位置)

moveRel是鼠标在现在这个点,相对继续移动,想要移动的像素

pyautogui.moveTo(50, 10, duration=2)  # 鼠标移动到10,10的位置,时间为2s
pyautogui.moveTo(size.width / 2, size.height / 2, duration=1)  # 移动到屏幕中间
pyautogui.moveRel(0, 400, duration=1)  # 鼠标相对移动

实时获取鼠标的坐标(以后用于判断鼠标路径,用于分析)

#实时获取鼠标位置
last_pos = pyautogui.position()#记录上一次位置,下面是一个死循环
try:
    while True:
        new_pos = pyautogui.position()#鼠标移动的新位置
        if last_pos != new_pos:
            print(new_pos)
            last_pos = new_pos
except KeyboardInterrupt:
    print("\nExit.")

 控制鼠标点击,移动,拖拽

dragTo直接开始拖拽,到指定位置停止
dragRel以现在鼠标所在位置为(0,0)相对拖拽指定像素
mouseDown控制鼠标在指定位置按下,mouseUp控制鼠标抬起
pyautogui.dragTo(x=500, y=535, duration=2,button='left')#鼠标拖拽到指定位置,停止
pyautogui.dragRel(xOffset=100,yOffset=100,duration=1,button='left',mouseDownUp=False)#鼠标相对拖拽
pyautogui.mouseDown(x=1913, y=165, button='left')#鼠标移动到x=1796, y=778位置按下
pyautogui.mouseUp(x=1904, y=824, button='left',duration=5)#鼠标移动到x=2745, y=778位置松开(与mouseDown组合使用选中)

控制鼠标滚动scroll

# scroll函数控制鼠标滚轮的滚动,amount_to_scroll参数表示滚动的格数。正数则页面向上滚动,负数则向下滚动
# pyautogui.scroll(clicks=amount_to_scroll, x=moveToX, y=moveToY)
pyautogui.scroll(5, 20, 2)
pyautogui.scroll(10)  # 向上滚动10格
pyautogui.scroll(-10)  # 向下滚动10格
pyautogui.scroll(10, x=100, y=100)  # 移动到(100, 100)位置再向上滚动10格

键盘输入

# 键盘输入
pyautogui.click(button='left')  # 点击左键,right是右键
pyautogui.typewrite('i like python', 0.01)  # 键盘输入,1秒一个单词

# 键盘组合输入
pyautogui.PAUSE = 0.5  # 以下每行代码执行,间隔0.5秒

pyautogui.keyDown('ctrl')  # 按下ctrl键
pyautogui.press('a')  # 按一下a键
pyautogui.press('c')  # 按一下c键
pyautogui.keyUp('ctrl')  # 松开ctrl
pyautogui.typewrite('\n\n')  # 输入两个空行
pyautogui.hotkey('ctrl', 'v')  # 组合键,粘贴

第二篇为pyautogui的locateOnScreen函数详解专门介绍图片

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python的pyautogui库(鼠标,键盘操作篇) 的相关文章

随机推荐

  • id选择器和class选择器

    id选择器 id选择器用来选取带有给定id属性的元素 语法 id例如 html div div css container color blue id选择器的一些特征 1 id选择器以 号开头 后跟元素的id属性值 2 id选择器只能选取带
  • 英伟达最新开源

    Title FasterViT Fast Vision Transformers with Hierarchical Attention Paper https arxiv org pdf 2306 06189 pdf Code https
  • 《Terraform 101 从入门到实践》 Functions函数

    Terraform 101 从入门到实践 这本小册在南瓜慢说官方网站和GitHub两个地方同步更新 书中的示例代码也是放在GitHub上 方便大家参考查看 Terraform的函数 Terraform为了让大家在表达式上可以更加灵活方便地进
  • 计算从指定日期开始的第几周的周几的日期

    项目场景 拿到的排课表数据 里面没有具体日期 而是第几周 周几的形式 需要转换成具体日期 问题描述 其中的周几是从周一开始的 从1 到7 转换时也是按这个顺序来 原因分析 先需要获取到学期开始的日期 例 date1 得出是周几 例 周3 是
  • Java实现动态数组

    Java中动态数组的实现是非常常见的数据结构 可以用来存储一组数据并动态调整数组的大小 本文将以 Java 语言为例 介绍如何实现一个简单的动态数组 其中包含基本操作如增加 删除 查询和遍历等 1 定义动态数组 在Java中 可以使用int
  • systemc verilog IEEE 注册登录下载

    https accellera org downloads standards systemrdl SystemRDL 2 0 SystemRDL Register Description Language 一次定义 多种HDL语言场合使用
  • 深入了解计算机端口(2)

    转载 url http www exam8 com computer spks ziliao ws 200504 10798 2 html url Virtualizing DNS DHCP Soft appliances for easy
  • Webstorm使用心得

    原文来自 http www jianshu com p 4ce97b360c13 Webstorm 大多数配置都在File gt Settings选项卡中进行的 也许你不得不第一个记住它的快捷键 Ctrl Alt S 1 设置开发工具主题
  • Edraw Max教程】如何有趣的创建梦幻般的思维导图

    Edraw Max 亿图图示 是一款综合图形图表制作软件 它包含丰富的实例和模版 帮助您轻松创建流程图 网络拓扑图 组织结构图 商业图表 工程图 思维导图 软件设计图和平面布局图等 亿图采用更智能和人性化的绘制方式 最大程度帮助设计者降低工
  • 九度OJ 1193:矩阵转置 (矩阵计算)

    时间限制 1 秒 内存限制 32 兆 特殊判题 否 提交 1673 解决 1132 题目描述 输入一个N N的矩阵 将其转置后输出 要求 不得使用任何数组 就地逆置 输入 输入的第一行包括一个整数N 1 lt N lt 100 代表矩阵的维
  • react umi实战

    umi umiJs是一个类Next JS的react开发框架 它基于一个约定 即pages目录下的文件即路由 而文件则导出react组件 然后打通从源码到产物的每个阶段 并配以完善的插件体系 让我们能把umi的产物部署到各个场景里面 初始化
  • Unity发布时出现“The type or namespace name `UnityEditor' could not be found.

    现象 using UnityEditor 就算包含了头文件 也会报错 原因 在非编辑器脚本中加入编辑器脚本时 修改方法 1 在Asset中创建Editor文件夹 并将有对Editor操作的脚本全放入到该文件夹中 再次运行之前出错的函数 问题
  • java中的自定义对象排序

    对于数组排序我们知道有Arrays sort 方法 但是如果遇到想要对一个对象数组中的某个属性进行排序 我们该如何去做呢 以给学生成绩排序为例 首先创建一个存储学生对象的数组 package JAVA API public class So
  • 容器数据持久化

    一 挂载方式 Docker提供三种方式将数据从宿主机挂载到容器中 volumes Docker管理宿主机文件系统的一部分 var lib docker volumes 保存数据的最佳方式 bind mounts 将宿主机上的任意位置的文件或
  • Python爬虫-MongoDB

    Python爬虫 MongoDB 文章目录 Python爬虫 MongoDB 前言 与MySQL对比 启动 关闭MongoDB 操作 数据库操作 集合操作 数据操作 增 删 改 查 保存 运算符 高级操作 聚合 常用管道 常用表达式 安全性
  • QT5中 类成员变量的初始化

    不能 类的声明中 进行 QString usr id admin 这样的初始化 初始化要到在初始化参数列表中
  • [FAQ09104]进入应用界面后发现会闪屏,此时要如何定位是否是relaunch activity引起的闪屏呢

    DESCRIPTION 进入应用界面后发现会闪屏 此时要如何定位是否是relaunch activity引起的闪屏呢 SOLUTION 1 对于这类问题 抓取log时记得要打开AMS的log开关 adb shell dumpsys acti
  • 使用JDBC获取各数据库的Meta信息——表以及对应的列

    先贴代码 作为草稿 第一个是工具类 MapUtil java import java util ArrayList import java util HashMap import java util Iterator import java
  • 小程序运行在微信和企业微信

    获取当前运行环境 如果开发者的小程序需要同时运行在微信和企业微信端 那么对于开发者来说 第一件事情则是需要知道小程序当前的运行环境 开发者可以通过调用异步接口 wx getSystemInfo 或者同步接口 wx getSystemInfo
  • Python的pyautogui库(鼠标,键盘操作篇)

    图片操作篇可以观看https blog csdn net m0 61741706 article details 126898616 pyautogui库可以模仿人去点击输出和键盘 相比selenium库 pyautogui库更方便 更便捷