VSCode 里 application-dev.yml 没生效?TaoToken 这样改 Codex 的 config.toml
2026/9/21 23:59:03
在自动化测试、批量操作、GUI 软件自动化等场景中,工程师常常需要“让程序替代人手去点击和输入”。市面上有多种方案:
PyAutoGUI 的设计哲学是“模拟人类操作,而不是直接调用底层控件 API”。这意味着它通过操作系统提供的事件接口(如 Windows 的SendInput,macOS 的 Quartz Event Services,Linux 的 X11)来模拟鼠标键盘事件。
这种设计的好处是通用性强,几乎所有 GUI 软件都能被操作;缺点是无法直接获取控件状态,只能依赖屏幕坐标和图像识别。
move,click,drag等事件。keydown,keyup。Pillow库进行截图与图像匹配,实现“找按钮再点击”。PyAutoGUI 的典型调用流程:
importpyautogui# 移动鼠标到指定坐标pyautogui.moveTo(100,200,duration=0.5)# 点击操作pyautogui.click()# 输入文本pyautogui.typewrite("Hello World",interval=0.1)# 截图并查找图像位置location=pyautogui.locateOnScreen('button.png')iflocation:pyautogui.click(location)核心逻辑:
某团队需要对ERP 系统桌面客户端进行自动化测试。该系统无 API 接口,控件无法直接获取,只能依赖 GUI 操作。
importpyautoguiimporttime# 登录流程自动化pyautogui.click(pyautogui.locateOnScreen('username.png'))pyautogui.typewrite("tester")pyautogui.click(pyautogui.locateOnScreen('password.png'))pyautogui.typewrite("123456")pyautogui.click(pyautogui.locateOnScreen('login_button.png'))time.sleep(5)# 等待页面加载locateOnScreen返回None。confidence参数提高容错率。pyautogui.locateOnScreen('button.png',confidence=0.8)region=(0,0,800,600)# 指定区域pyautogui.locateOnScreen('button.png',region=region)typewrite无法正确输入。importpyperclip pyperclip.copy("测试文本")pyautogui.hotkey("ctrl","v")sleep或使用pyautogui.waitFor。