当前位置: 首页 > news >正文

pyautogui库的一些鼠标操作

        pyautogui是一个跨平台的自动化库,提供了很多方便的功能,包括获取鼠标位置和对鼠标进行一些操作。    

pyautogui.position()  获取当前鼠标位置

pyautogui.position():获取当前鼠标光标在屏幕上的位置。


1.功能
        返回当前鼠标光标在屏幕上的坐标位置,返回值是一个元组(x, y),分别表示鼠标光标在屏幕水平方向(x轴)和垂直方向(y轴)上的像素位置。


2.返回值

• 返回类型:tuple,包含两个整数(x, y)。

• x:鼠标光标在屏幕水平方向上的像素坐标。

• y:鼠标光标在屏幕垂直方向上的像素坐标。

• 坐标系:坐标系的原点(0, 0)位于屏幕的左上角,x 坐标从左到右递增,y 坐标从上到下递增。

如果鼠标光标位于屏幕左上角:

• pyautogui.position()将返回(0, 0)。

如果鼠标光标位于屏幕右下角:

• pyautogui.position()将返回(1919, 1079)(假设分辨率是 1920x1080)。


3.应用场景

• 自动化测试:在自动化测试中,可以通过pyautogui.position()获取鼠标当前位置,以便在后续操作中精确地移动鼠标到目标位置。

• 脚本调试:在编写 PyAutoGUI 脚本时,可以通过打印鼠标位置来调试脚本,确保鼠标移动到正确的位置。

• 用户交互:在某些交互式脚本中,可以根据鼠标位置动态调整程序的行为。


4.注意事项

• 多显示器环境:如果连接了多个显示器,pyautogui.position()返回的是鼠标在所有显示器范围内的全局坐标。例如,如果主显示器分辨率为 1920x1080,副显示器分辨率为 1280x720,且副显示器位于主显示器右侧,则副显示器的左上角坐标为(1920, 0),副显示器右下角坐标为(3200, 720)。

• 性能影响:pyautogui.position()是一个实时获取鼠标位置的函数,频繁调用可能会对程序性能产生一定影响,尤其是在高分辨率屏幕上。如果需要频繁获取鼠标位置,建议合理控制调用频率。


5.扩展
pyautogui.position()还可以接受可选参数`x`和`y`,用于指定返回值的格式:

• 如果不传参数,直接返回(x, y)。

• 如果传入参数,例如pyautogui.position(x=100),则返回`(100, 当前y坐标)。

pyautogui.moveTo()  绝对移动

import pyautogui
import time# 移动到坐标(500, 500)
pyautogui.moveTo(500, 500)# 带持续时间的平滑移动(2秒内移动到目标位置)
pyautogui.moveTo(1000, 800, duration=2)

moveRel(xOffset, yOffset) 相对移动

import pyautogui
import time# 向右移动100像素,向下移动50像素
pyautogui.moveRel(100, 50)# 带持续时间的平滑相对移动
pyautogui.moveRel(-50, 0, duration=1)  # 向左移动50像素

pyautogui.size()  屏幕分辨率

import pyautoguiwidth, height = pyautogui.size()
print(f"屏幕分辨率: {width} x {height}")

pyautogui.click()  模拟鼠标点击

# 在坐标(500, 500)处点击
pyautogui.click(x=500, y=500)# 带延迟的点击(先移动到目标位置,再点击)
pyautogui.click(x=1000, y=800, duration=1)  # 1秒内移动到位置再点击
# 右键点击
pyautogui.click(button='right')# 中键点击指定位置
pyautogui.click(x=500, y=500, button='middle')
# 双击当前位置(间隔0.2秒)
pyautogui.click(clicks=2, interval=0.2)# 在坐标(500, 500)处三击,间隔0.5秒
pyautogui.click(x=500, y=500, clicks=3, interval=0.5)
pyautogui.doubleClick()    # 双击左键。
pyautogui.rightClick()    # 右键点击。
pyautogui.middleClick()    # 中键点击。

http://www.dtcms.com/a/268744.html

相关文章:

  • 医学 LLM 评估相关论文笔记
  • OSPF路由过滤
  • 【python实用小脚本-130】基于 Python 的 HTML 到 Markdown 转换工具:实现高效文档格式转换
  • 深度学习7(梯度下降算法改进)
  • SLAM文献之Efficient and Consistent Bundle Adjustment on Lidar Point Clouds(BALM)
  • 安卓10.0系统修改定制化____实现自动开启 USB 调试​的步骤解析 列举常用的几种修改方法
  • 【氮化镓】​​GaN帽层对HEMTs栅极漏电机制的影响
  • LeetCode 2099.找到和最大的长度为 K 的子序列:自定义排序
  • 前端篇——HTML知识点体系
  • 解决jenkins的Exec command命令nohup java -jar不启动问题
  • 订单初版—1.分布式订单系统的简要设计文档
  • Vue 2 vs Vue 3:核心区别详解与升级指南
  • 使用ansible的角色实现批量安装nginx服务
  • ReAct (Reason and Act) OR 强化学习(Reinforcement Learning, RL)
  • [特殊字符] Python 实战 | 批量统计中文文档词频并导出 Excel
  • iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
  • Spring的Bean原型模式下的使用
  • OpenWebUI(3)源码学习-后端models数据模型模块
  • 【论文撰写】如何把AI生成的文本公式复制在word中,完整的复制公式,拷贝豆包生成的公式
  • 网络安全之注入攻击:原理、危害与防御之道
  • 文件IO day29
  • 代码幽灵5-终局:静默编译
  • Baklib: 用 “技术轻量化” 解决内容管理 “重需求”
  • Linux命令的命令历史
  • 大数据在UI前端的应用创新:基于情感计算的用户体验优化
  • 冠能高端系列真实口碑如何
  • TCP backlog工作机制
  • AI时代,传统票务系统该往哪里使劲?
  • 华为手机如何扫描到SLE设备
  • 如何备份vivo手机中的联系人?