You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python的pywinauto中查找元素坐标?桌面自动化滚动场景

桌面应用自动化获取元素坐标实现滚动点击的方法

基于PyAutoGUI的操作方案

  • 定位元素:通过图像识别定位目标元素,执行pyautogui.locateOnScreen('element_screenshot.png')获取元素边界框,其中left和top为元素左上角坐标,结合width和height可计算中心坐标:center_x = left + width//2,center_y = top + height//2。
  • 滚动到元素位置:调用pyautogui.scroll(clicks, x=center_x, y=center_y),clicks为滚动次数,正数向上、负数向下,直到元素可见。
  • 触发点击:确认元素可见后,执行pyautogui.click(center_x, center_y)完成操作。

基于Pywinauto的操作方案

  • 连接目标应用:先通过app = pywinauto.Application().connect(title='应用窗口标题')建立与桌面应用的连接。
  • 获取元素对象:利用控件属性定位元素,比如dlg = app['窗口标题'],element = dlg.child_window(title='元素标题', control_type='Button')。
  • 获取元素坐标:调用element.rectangle()方法,返回的对象包含left、top、right、bottom属性,按需求计算对应坐标。
  • 滚动与点击:pywinauto支持自动滚动到元素可见区域,直接执行element.click()即可;也可手动调用dlg.scroll(direction='down', count=5)控制滚动次数。

基于SikuliX的操作方案

  • 识别元素:用find("element_image.png")获取元素对象,调用element.getLocation()得到元素左上角的x、y坐标。
  • 滚动与点击:执行wheel(DOWN, 3, element)指定滚动方向、步数和目标元素;或直接调用element.click(),SikuliX会自动滚动至元素可见位置并完成点击。

通用注意事项

  • 图像识别时需保证元素截图清晰,避免因分辨率、窗口缩放导致识别失败;控件定位需准确获取元素的标题、控件类型等属性。
  • 可结合元素可见性判断逻辑,比如循环调用图像识别方法,直到元素出现后再执行滚动和点击操作。

内容的提问来源于stack exchange,提问作者Radha Yamini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 09:19:52