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

使用PyAutoGUI点击屏幕文字触发OSError,求技术支持

问题分析与解决方案

错误原因

你调用pyautogui.leftClick('OK')时误解了参数用法:pyautogui的点击方法如果传入字符串,会将其当作图片文件路径,尝试在屏幕上匹配该图片来定位点击位置。但你没有提供名为OK的图片文件,因此触发了文件找不到的OSError。

解决方案

针对你的需求(点击UAC设置窗口的OK按钮),提供三种可行方案:

方案1:使用键盘快捷键(最简单高效)

Windows系统的UAC设置窗口中,OK按钮的快捷键是Alt+O(按钮上的字母O带有下划线,代表快捷键),直接调用快捷键即可:

# 替换原来的pyautogui.leftClick('OK')
pyautogui.hotkey('alt', 'o')

方案2:图像识别定位(通用按钮场景)

如果需要定位其他无快捷键的按钮,可以用图像匹配:

  1. 截取屏幕上OK按钮的清晰截图,保存为ok_button.png(确保截图与屏幕显示的按钮完全一致,分辨率匹配)
  2. 修改代码:
# 查找按钮位置,confidence参数可调整识别精度(需安装opencv-python)
button_pos = pyautogui.locateOnScreen('ok_button.png', confidence=0.8)
if button_pos:
    pyautogui.click(button_pos)
else:
    print("未找到OK按钮")

方案3:使用Windows窗口控件库(最稳定)

pyautogui依赖图像/坐标,对于系统窗口,用pywinauto直接操作控件更可靠:

  1. 安装库:pip install pywinauto
  2. 修改代码(替换原有的pyautogui点击逻辑):
from pywinauto import Application

# 连接到UAC设置窗口
app = Application().connect(title_re="User Account Control Settings")
# 点击OK按钮
app.top_window()["OK"].click()

代码其他小问题修正

你的代码中keyboard = Controller少了括号,正确写法是keyboard = Controller(),不过这段代码里没用到键盘功能,可直接删除该部分。

内容的提问来源于stack exchange,提问作者figma designexample

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 03:35:25