首页 > 编程问答 >获取笔记本电脑屏幕上元素的坐标

获取笔记本电脑屏幕上元素的坐标

时间:2024-07-30 06:33:05浏览次数:6  
标签:python pyautogui

我正在制作一个有趣的 python 程序来为我自动执行几次点击。我想使用python提供的pyAutoGui库来制作这个程序。我很难找到我想要单击的元素的坐标。有什么方法可以找到元素的坐标吗?


当然,可以使用 pyAutoGUI 在 Python 中获取笔记本电脑屏幕上元素的坐标。以下是实现方法:

1. 使用 pyautogui.position()

  • 此函数会返回当前鼠标指针的 x 和 y 坐标。
  • 将鼠标悬停在要获取其坐标的元素上,然后运行代码。

```python import pyautogui

# 获取当前鼠标位置 x, y = pyautogui.position()

# 打印坐标 print(f"x: {x}, y: {y}") ```

2. 使用 pyautogui.locateOnScreen()

  • 此函数在屏幕上查找图像并返回其坐标。
  • 需要提供要查找的元素的图像文件(如 PNG 或 JPG)。

```python import pyautogui

# 将要查找的元素的图像替换为 'element.png' element = pyautogui.locateOnScreen('element.png')

if element: x, y, width, height = element print(f"x: {x}, y: {y}") else: print("未找到元素") ```

3. 结合 pyautogui.locateOnScreen() pyautogui.center()

  • 此方法首先使用 pyautogui.locateOnScreen() 查找元素。
  • 然后,它使用 pyautogui.center() 获取找到的元素的中心坐标。

```python import pyautogui

# 将要查找的元素的图像替换为 'element.png' element = pyautogui.locateOnScreen('element.png')

if element: x, y = pyautogui.center(element) print(f"x: {x}, y: {y}") else: print("未找到元素") ```

技巧:

  • 使用 pyautogui.sleep(seconds) 在运行代码以获取坐标之前添加延迟,以便有时间将鼠标定位在所需元素上。
  • 使用图像编辑软件仔细裁剪元素的图像,以便 pyautogui.locateOnScreen() 准确地识别它。
  • 如果元素难以查找,请尝试使用 confidence 参数调整 pyautogui.locateOnScreen() 的精度。例如: pyautogui.locateOnScreen('element.png', confidence=0.8)

一旦获得了元素的坐标,就可以将它们与 pyautogui.click() 等其他 pyAutoGUI 函数一起使用来对其执行操作。例如:

# 点击坐标为 (x, y) 的元素
pyautogui.click(x, y)

请记住负责任地使用 pyAutoGUI,并避免创建可能损害的计算机或侵犯他人隐私的脚本。

标签:python,pyautogui
From: 69759056

相关文章

  • 在python日志输出的每一行前面添加变量缩进
    我正在将日志记录构建到一个Python应用程序中,我希望它是人类可读的。目前,调试日志记录了调用的每个函数以及参数和返回值。这意味着,实际上,嵌套函数调用的调试日志可能如下所示:2024-07-2916:52:26,641:DEBUG:MainController.initialize_componentscalledwithargs<control......
  • 使用 DQN 实现 pong,使用 python 中的特征向量而不是像素。我的 DQNA 实现代码正确吗,因
    我正在致力于使用OpenAI的Gym为Pong游戏实现强化学习(RL)环境。目标是训练人工智能代理通过控制球拍来打乒乓球。代理收到太多负面奖励,即使它看起来移动正确。具体来说,奖励函数会惩罚远离球的智能体,但这种情况发生得太频繁,即使球朝球拍移动时似乎也会发生。观察......
  • Python CDLL 无法加载两次
    我正在尝试用python创建一个密码管理器,但遇到了一个问题,一旦加载了一种类型的dll,我就无法加载不同的dll,在这个示例中,我加载了一个dll,并尝试解密加密的密码数据,它工作正常,直到我加载另一个不同的nss3.dll文件,此时它给我一个错误:“过程入口点HeapAlloc无法位于动态链......
  • 你能将 HTTPS 功能添加到 python Flask Web 服务器吗?
    我正在尝试构建一个Web界面来模拟网络设备上的静态接口,该网络设备使用摘要式身份验证和HTTPS。我想出了如何将摘要式身份验证集成到Web服务器中,但我似乎无法找到如何使用FLASK获取https,如果您可以向我展示如何实现,请评论我需要使用下面的代码做什么来实现这一点。from......
  • Python:比较 csv 文件并打印相似之处
    我需要比较两个csv文件并打印出它们的相似之处。第一个文件有名称和浓度,第二个文件就像只有名称的“最佳”列表,我需要绘制相似性图表。例如,这就是我的列表的样子:file1-old_file.csvname_id,conc_test1,conc_test2name1,####,####name2,###......
  • Python 类交叉引用
    我用Python创建了一个数独游戏。我有一个:单元格类-“保存”数字可能性单元格组-保存单元格类实例我使用这些组在数独中运行行、列和正方形功能。每个单元格包含所有组,他属于classCell:def__init__(groups):self.groups=groupscla......
  • 如何修复我的 Python Azure Function DevOps Pipeline 上的“找到 1 个函数(自定义)加载
    我正在尝试使用AzureDevOps构建管道将PythonAzureFunction部署到Azure门户。由于某种原因,代码被部署到服务器,但我在尝试访问端点时收到404错误。我收到一个错误,显示1functionsfound(Custom)0functionsloaded,以及在服务器上显示ModuleNotFound......
  • 使用 kivy 从 python 脚本的 buildozer 构建 android apk 时出错
    我想从使用kivy包构建的Python脚本构建apk为此,我使用googlecollab.这里是main.py脚本:importyoutube_dlfromkivy.appimportAppfromkivy.uix.boxlayoutimportBoxLayoutfromkivy.uix.buttonimportButtonfromkivy.uix.tex......
  • 自动解码并检索 S/MIME 加密电子邮件的正文 (python)
    我如何:用python代码连接我的邮件收件箱以自动获取未读电子邮件的加密内容;解码S/MIME加密电子邮件(我有密钥);检索电子邮件正文纯文本;检查正文(或主题)是否与某个关键字(现在为“test”)匹配,并在匹配时打印一些内容;在树莓派上使用此代码,无需手动......
  • Python 3 写入 DBF(带有 Memo 的 dBase IV)
    我需要在Python3中写入带有备注字段的dBaseIVdbf文件,但找不到合适的模块来执行此操作。我尝试过的包:Simpledbf-只读dbf-不支持dBaseIVdbfpy-不支持Python3dbfpy3-不支持dBaseIVYDbf-不支持备注字段pyshp-无法仅使用dbf文件......