kimi需接收全屏无遮挡png截图并配明确指令才能生成可运行pywinauto脚本;必须指定backend、用auto_id或control_type精确定位控件、插入显式等待、处理系统弹窗。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Kimi直接生成可运行的UI测试脚本,而不是只给思路或伪代码——这要求你精准提供界面截图、控件特征和操作目标,否则Kimi会返回笼统描述或格式错误的Python片段。
准备可被Kimi识别的UI截图
打开待测应用,将目标界面调整至全屏、无遮挡状态,确保所有关键控件(按钮、输入框、列表项)清晰可见且文字未被截断。用系统自带截图工具截取整屏,保存为PNG格式——JPG压缩可能模糊文字边缘,导致Kimi误判控件类型。
将截图文件拖入Kimi聊天窗口,【必须在发送截图的同时附带一句明确指令】,例如:“请基于此截图生成Pywinauto脚本,目标:点击‘提交订单’按钮后验证弹窗标题为‘下单成功’”。不加指令时Kimi默认只做元素识别,不会输出完整脚本。
构造有效提示词触发代码生成
方法一:结构化角色+动作+约束
在截图后立即输入:
“你是一名Windows桌面应用自动化测试工程师,熟悉pywinauto 0.6.8语法。请根据上图生成完整可执行脚本:启动进程名为‘TradeApp.exe’的程序→等待主窗口‘交易终端’出现→定位并点击坐标(842, 517)处的‘买入’按钮→捕获弹窗并断言其标题含‘确认买入’字样→最后关闭所有窗口。”
方法二:模板填充式指令
输入:“按以下模板生成代码:# -*- coding: utf-8 -*-\nfrom pywinauto import Application\nimport time\napp = Application(backend='uia').start('XXX')\nmain_win = app.window(title_re='YYY')\nmain_win.wait('ready', timeout=10)\n# 此处插入Kimi生成的具体操作行\nmain_win.close()”
注意把XXX换成实际进程名,YYY换成窗口标题关键词,Kimi会严格按此框架补全中间逻辑。
使用 Moonshot Kimi API 的 $web_search 内置工具进行联网搜索。当需要进行网络搜索获取实时信息时使用,支持中文和英文搜索查询。需要配置 MOONSHOT_API_KEY。
方法三:反向纠错式提问
若前次生成的脚本运行报错,直接粘贴错误日志+截图,再问:“第7行报错‘ElementNotFoundError’,但截图中‘刷新’按钮明显存在且文字为蓝色粗体,请改用控件类型+AutomationId方式重新定位并生成修复后脚本。”
校验与修正生成的脚本
第一步:检查backend参数是否匹配
Pywinauto支持‘win32’和‘uia’两种backend。Kimi默认用‘uia’,但若应用是老旧MFC程序,必须手动改为‘win32’,否则所有控件查找均失败。
第二步:验证控件定位策略
生成脚本中若出现类似app.window(best_match="确定").click()的写法,需立刻替换为更稳定的定位方式——比如用app.window(auto_id="btnConfirm").click()或app.window(found_index=0).child_window(title="确定", control_type="Button").click()。因为best_match依赖OCR识别结果,截图稍有偏移就会失效。
第三步:插入显式等待
在关键操作前必须添加wait语句。例如在点击“查询”按钮前,加入main_win.child_window(title="查询", control_type="Button").wait("enabled", timeout=15),否则脚本可能因界面未加载完成而提前报错。
第四步:处理弹窗阻塞
若脚本执行到某步后卡住,大概率是未处理系统级弹窗(如UAC权限请求、杀毒软件拦截)。在Application()初始化后立即添加app.connect(path="explorer.exe"),再用Desktop(backend="uia").window(title_re=".*安全警告.*").close()捕获并关闭常见干扰弹窗。










