ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何在 Midscene YAML 自动化的提示词中附加参考图片

如何在 Midscene YAML 自动化的提示词中附加参考图片 如何在 Midscene YAML 自动化的提示词中附加参考图片【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene在 Midscene 的 YAML 自动化脚本中很多步骤aiTap、aiAssert等的提示词只是一段字符串。当纯文字无法把目标描述清楚时——比如页面上有一个特定的 Logo、按钮图标和周围元素很难用语言区分——可以在提示词中附带参考图片让模型对照图片来定位或判断目标。本文基于 Midscene 官方文档 Automate with scripts in YAML 和 API 参考说明如何在 YAML 脚本中正确附加images、如何运行脚本以及如何验证附加图片后断言是否生效。准备条件按照 YAML script runner 文档运行 YAML 脚本需要终端使用的 Node.js 版本为20.19、22.12或24。部分 CLI 执行路径使用 Rstest/Rspack 工具链会拒绝更旧的 Node 20 补丁版本如20.17.0遇到Unsupported Node.js version提示时需升级 Node.js。安装 CLI推荐全局安装也可按项目安装npm i -g midscene/cli在运行命令的目录下创建.env文件配置模型服务这些是 dotenv 读取的键值对不要加export前缀MIDSCENE_MODEL_BASE_URLreplace with your model service URL/v1 MIDSCENE_MODEL_API_KEYreplace with your API Key MIDSCENE_MODEL_NAMEreplace with your model name MIDSCENE_MODEL_FAMILYreplace with your model family.env放在你运行midscene命令的目录中不一定与 YAML 文件同目录。完整的模型配置说明见 Supported models and setup。提示词改为对象prompt、images、convertHttpImage2Base64原本写成字符串的步骤提示词需要改写为对象形式。该对象包含以下字段prompt发送给模型的文本描述images可选提示词引用的参考图片是一个对象数组每一项需要提供name在提示词中引用该图片用的名字和urlconvertHttpImage2Base64可选设为true时Midscene 会先把 HTTP 图片链接下载并转成 Base64 再发送给模型适用于图片链接无法被模型公开访问的情况。url可以是三种形式本地路径、Base64 字符串或远程链接。两类步骤的写法不同交互类步骤images写在locate字段中对于aiTap、aiHover、aiDoubleClick、aiRightClick这类交互操作文本和图片要放在locate字段里且locate与操作指令同级不要嵌套在操作指令内部旧的嵌套写法仍受支持但官方不推荐。文档给出的示例tasks: - name: Verify branding flow: - aiHover: locate: prompt: Move the cursor to the region containing the GitHub logo. images: - name: GitHub logo url: https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png convertHttpImage2Base64: true - aiTap: locate: prompt: Tap the region containing the GitHub logo. images: - name: GitHub logo url: https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png convertHttpImage2Base64: true执行与视觉问答类步骤prompt和images直接写在操作指令下对于aiAct及其简写ai以及aiAsk、aiQuery、aiBoolean、aiNumber、aiString、aiAssert等视觉问答类步骤可以直接在操作指令下设置prompt和images字段。例如用参考图片断言页面上是否出现了该 Logo文档示例tasks: - name: Verify branding flow: - aiAssert: prompt: Check whether the image appears on the page. images: - name: target logo url: https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png convertHttpImage2Base64: true完整脚本与运行把上面的步骤放进一个完整脚本以 Web 页面为例例如verify-branding.yamlpage: url: https://www.github.com tasks: - name: Verify branding flow: - aiTap: locate: prompt: Tap the region containing the GitHub logo. images: - name: GitHub logo url: https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png convertHttpImage2Base64: true - aiAssert: prompt: Check whether the image appears on the page. images: - name: target logo url: https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png convertHttpImage2Base64: true在脚本所在目录或能访问到该文件的目录执行midscene ./verify-branding.yaml # 如果 Midscene 安装在项目中 npx midscene ./verify-branding.yamlWeb 场景如果需要看到浏览器窗口可以追加--headed参数。验证结果按 YAML script runner 文档CLI 会打印执行进度结束后生成可视化报告。输出目录中包含由--summary指定的 JSON 汇总文件默认index.json包含所有脚本的执行状态和统计每个 YAML 文件对应的单独执行结果JSON每个脚本的可视化报告HTML。判断本次任务是否完成aiAssert步骤执行通过该步骤用附带的参考图片判断页面内容若断言失败 CLI 会报错可配置errorMessage自定义失败信息生成的 JSON 汇总中该脚本执行状态正常打开可视化报告核对执行过程中发送给模型的截图和步骤记录。限制与注意事项图片尺寸遵循模型服务商对图片尺寸和边长的限制过大或过小的图片可能被拒绝具体限制需查对应服务商的文档。模型无法访问的图片链接如果url是模型侧无法访问的 HTTP 链接例如需要登录内网设置convertHttpImage2Base64: trueMidscene 会下载图片并以 Base64 形式发送给模型。本地图片路径相对路径基于当前命令执行目录解析与 YAML 脚本中其他文件路径如fileChooserAccept的规则一致写路径前先确认执行目录。嵌套写法locate缩进在操作指令内部的旧写法仍然支持但不推荐新脚本请使用locate与操作指令同级的写法。同一能力在 API 中的等价形式如果你不用 YAML 而是用 JS API同样的提示词对象可直接传给agent.aiTap()、agent.aiAssert()、agent.aiAct()等方法字段结构一致prompt/images/convertHttpImage2Base64见 API 参考 Prompt input with images。该文档同时标注了 YAML 自动化属于 legacy 方案Midscene Test 为 Beta本文描述的是 legacy YAML 脚本的行为以文档为准。相关文档Automate with scripts in YAML、YAML script runner、API reference。【免费下载链接】midsceneGUI Agent for E2E Testing项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表