# OpenCode + Agent Browser 自动化测试详细教程

news/2026/1/17 0:09:25/文章来源:https://www.cnblogs.com/gyc567/p/19494375

OpenCode + Agent Browser 自动化测试详细教程

前言

本教程将手把手教你如何使用 OpenCode 结合 Agent Browser 进行自动化测试。即使你是完全的新手,也能通过本教程快速上手浏览器自动化测试。

一、环境准备

1.1 安装 Node.js

首先需要安装 Node.js(版本 16 或更高):

  • 访问 nodejs.org 下载并安装
  • 安装完成后,在终端运行 node -v 验证安装

1.2 安装 Agent Browser

# 全局安装 agent-browser
npm install -g agent-browser# 下载 Chromium 浏览器
agent-browser install

1.3 Linux 用户额外步骤

如果你使用 Linux,还需要安装系统依赖:

agent-browser install --with-deps

二、基础概念

2.1 什么是 Agent Browser?

Agent Browser 是一个基于 Playwright 的浏览器自动化 CLI 工具,专为 AI 代理设计。它可以:

  • 自动浏览网页
  • 点击、填写表单
  • 截图、获取页面内容
  • 与 AI 代理完美配合

2.2 核心工作流程

1. 打开网页 → 2. 获取页面快照 → 3. 识别元素 → 4. 执行操作 → 5. 验证结果

三、快速入门实例

3.1 第一个测试:百度搜索

让我们从一个简单的例子开始 - 自动在百度上搜索"Agent Browser":

# 1. 打开百度
agent-browser open https://www.baidu.com# 2. 获取页面快照(查看有哪些元素)
agent-browser snapshot# 3. 在搜索框输入内容(假设搜索框的 ref 是 @e3)
agent-browser fill @e3 "Agent Browser"# 4. 点击搜索按钮(假设按钮的 ref 是 @e4)
agent-browser click @e4# 5. 等待页面加载
agent-browser wait 2000# 6. 截图保存结果
agent-browser screenshot baidu_search_result.png# 7. 关闭浏览器
agent-browser close

3.2 使用传统选择器

除了使用 ref,你也可以使用传统的 CSS 选择器:

# 使用 CSS 选择器
agent-browser fill "#kw" "Agent Browser"
agent-browser click "#su"# 使用文本选择器
agent-browser click "text=搜索"# 使用 XPath
agent-browser click "xpath=//input[@type='submit']"

四、进阶实例:电商网站自动化测试

4.1 测试场景

让我们测试一个简单的电商网站的用户流程:

  1. 访问首页
  2. 搜索商品
  3. 添加到购物车
  4. 验证购物车内容

4.2 完整测试脚本

创建一个名为 ecommerce_test.sh 的脚本文件:

#!/bin/bash
echo "开始电商网站自动化测试..."# 1. 打开电商网站
agent-browser open https://demo.ecommerce.com# 2. 获取初始快照
agent-browser snapshot -i# 3. 点击搜索框并输入商品名称
agent-browser find placeholder "搜索商品" fill "iPhone 15"# 4. 点击搜索按钮
agent-browser find role button click --name "搜索"# 5. 等待搜索结果加载
agent-browser wait --text "iPhone 15"# 6. 点击第一个商品
agent-browser find first ".product-item" click# 7. 等待商品详情页加载
agent-browser wait --text "加入购物车"# 8. 点击加入购物车
agent-browser find role button click --name "加入购物车"# 9. 等待提示信息
agent-browser wait --text "已添加到购物车"# 10. 点击购物车图标
agent-browser find role link click --name "购物车"# 11. 验证购物车内容
agent-browser get text ".cart-items"
agent-browser is visible "iPhone 15"# 12. 截图保存测试结果
agent-browser screenshot shopping_cart_test.png# 13. 关闭浏览器
agent-browser closeecho "测试完成!"

4.3 运行测试

# 给脚本执行权限
chmod +x ecommerce_test.sh# 运行测试
./ecommerce_test.sh

五、AI 提示词案例

5.1 基础提示词模板

模板 1:简单表单填写

请帮我自动化测试一个注册表单:
1. 打开 https://example.com/register
2. 填写用户名:testuser123
3. 填写邮箱:test@example.com  
4. 填写密码:Test123456
5. 点击注册按钮
6. 验证是否成功跳转到欢迎页面

模板 2:数据提取

请帮我从 https://example.com/products 页面提取所有商品信息:
1. 打开产品列表页面
2. 提取每个商品的名称、价格和描述
3. 将结果整理成表格格式
4. 截图保存页面

模板 3:登录流程测试

测试用户登录功能:
1. 打开 https://example.com/login
2. 输入用户名:demo_user
3. 输入密码:demo_pass
4. 点击登录按钮
5. 验证登录成功后是否显示"欢迎回来"
6. 检查用户头像是否可见

5.2 高级提示词案例

案例 1:完整的电商购买流程

帮我测试完整的购买流程:
1. 访问 https://shop.example.com
2. 搜索"笔记本电脑"
3. 选择价格范围 5000-8000 元的商品
4. 点击评分最高的商品
5. 查看商品详情和用户评价
6. 选择配置(内存:16GB,硬盘:512GB)
7. 点击立即购买
8. 填写收货地址:- 姓名:张三- 电话:13800138000- 地址:北京市朝阳区xxx街道xxx号
9. 选择支付方式:支付宝
10. 验证订单信息正确
11. 截图保存订单确认页面

案例 2:社交媒体自动化测试

测试社交媒体发布功能:
1. 登录 https://social.example.com- 用户名:test_social- 密码:TestSocial123
2. 点击发布新动态按钮
3. 上传一张测试图片(使用本地路径:/path/to/test.jpg)
4. 输入文字内容:"今天天气真不错!#美好生活"
5. 添加位置信息:北京·朝阳公园
6. 设置可见性:仅好友可见
7. 点击发布按钮
8. 验证动态是否成功发布
9. 检查图片是否正常显示
10. 验证标签是否正确显示

5.3 调试提示词

页面元素无法点击,请帮我分析:
1. 获取当前页面的完整快照
2. 检查目标元素是否被其他元素遮挡
3. 分析元素的可见性和可交互状态
4. 提供解决方案

六、最佳实践

6.1 等待策略

# ❌ 不好的做法 - 固定等待时间
agent-browser wait 3000# ✅ 好的做法 - 等待特定元素出现
agent-browser wait --text "加载完成"# ✅ 更好的做法 - 等待页面加载状态
agent-browser wait --load networkidle

6.2 错误处理

在脚本中添加错误检查:

#!/bin/bash
set -e  # 遇到错误立即退出# 函数:安全点击
safe_click() {if agent-browser is visible "$1"; thenagent-browser click "$1"elseecho "错误:元素 $1 不可见"exit 1fi
}# 使用示例
safe_click "#submit-button"

6.3 数据驱动测试

创建数据文件 test_data.json

{"users": [{"username": "user1", "password": "pass1", "expected": "success"},{"username": "user2", "password": "wrong", "expected": "error"}]
}

然后编写循环测试脚本:

#!/bin/bash# 读取测试数据
users=$(jq -r '.users[] | @base64' test_data.json)for user in $users; do_jq() {echo ${user} | base64 --decode | jq -r ${1}}username=$(_jq '.username')password=$(_jq '.password')expected=$(_jq '.expected')echo "测试用户: $username"# 执行登录测试...
done

七、调试技巧

7.1 使用可视化模式

# 使用 --headed 参数显示浏览器窗口
agent-browser open https://example.com --headed

7.2 高亮元素

# 高亮显示特定元素
agent-browser highlight "#important-button"

7.3 查看控制台日志

# 查看页面控制台输出
agent-browser console

7.4 网络请求监控

# 查看网络请求
agent-browser network requests# 过滤 API 请求
agent-browser network requests --filter api

八、实战项目:自动化测试报告生成

8.1 项目结构

automation-project/
├── tests/
│   ├── login_test.sh
│   ├── product_test.sh
│   └── checkout_test.sh
├── reports/
├── screenshots/
├── test_data.json
└── run_all_tests.sh

8.2 通用测试函数库

创建 lib/test_functions.sh

#!/bin/bash# 初始化测试环境
init_test() {export TEST_NAME=$1export TEST_START_TIME=$(date +%s)export SCREENSHOT_DIR="screenshots/${TEST_NAME}_$(date +%Y%m%d_%H%M%S)"mkdir -p "$SCREENSHOT_DIR"echo "开始测试: $TEST_NAME"
}# 截图函数
take_screenshot() {local name=$1local filename="${SCREENSHOT_DIR}/${name}.png"agent-browser screenshot "$filename"echo "截图保存: $filename"
}# 断言函数
assert_visible() {local selector=$1local message=$2if agent-browser is visible "$selector"; thenecho "✅ 通过: $message"return 0elseecho "❌ 失败: $message"take_screenshot "assert_failed_${selector//[^a-zA-Z0-9]/_}"return 1fi
}# 清理函数
cleanup_test() {local end_time=$(date +%s)local duration=$((end_time - TEST_START_TIME))echo "测试 $TEST_NAME 完成,耗时: ${duration}秒"agent-browser close
}

8.3 具体测试用例

创建 tests/login_test.sh

#!/bin/bash
source ../lib/test_functions.sh# 初始化测试
init_test "用户登录测试"# 打开登录页面
agent-browser open https://example.com/login
take_screenshot "login_page"# 输入用户名和密码
agent-browser fill "#username" "testuser"
agent-browser fill "#password" "testpass"
take_screenshot "filled_form"# 点击登录
agent-browser click "#login-button"# 验证登录成功
assert_visible ".user-avatar" "用户头像可见"
assert_visible "text=欢迎回来" "欢迎消息可见"# 截图保存结果
take_screenshot "login_success"# 清理
cleanup_test

8.4 批量运行测试

创建 run_all_tests.sh

#!/bin/bashecho "开始运行所有测试..."
echo "=================="# 记录开始时间
START_TIME=$(date +%s)# 运行所有测试
for test_file in tests/*.sh; doif [ -f "$test_file" ]; thenecho "运行测试: $test_file"bash "$test_file"echo "------------------"fi
done# 记录结束时间
END_TIME=$(date +%s)
TOTAL_DURATION=$((END_TIME - START_TIME))echo "所有测试完成!总耗时: ${TOTAL_DURATION}秒"# 生成简单的测试报告
echo "生成测试报告..."
cat > reports/test_report.md << EOF
# 自动化测试报告
生成时间: $(date)## 测试统计
- 总测试数: $(ls tests/*.sh | wc -l)
- 总耗时: ${TOTAL_DURATION}秒
- 截图数量: $(find screenshots/ -name "*.png" | wc -l)## 测试详情
$(ls screenshots/*/ | grep -v "^d" | wc -l) 张截图已保存到 screenshots 目录EOF

九、常见问题解决

9.1 元素找不到

# 问题:元素找不到
# 解决方案:
# 1. 等待元素出现
agent-browser wait "$SELECTOR"# 2. 检查元素是否真的存在
agent-browser get count "$SELECTOR"# 3. 使用更稳定的选择器
# 优先使用 data-testid,其次使用文本内容,最后使用 CSS 类名

9.2 页面加载慢

# 增加等待时间
agent-browser wait --load networkidle# 或者等待特定元素
agent-browser wait --text "页面加载完成"

9.3 弹窗处理

# 处理 alert 弹窗
agent-browser dialog accept# 处理 confirm 弹窗
agent-browser dialog dismiss

十、下一步学习

10.1 推荐阅读

  • Playwright 官方文档
  • Agent Browser GitHub 仓库
  • 自动化测试最佳实践

10.2 练习项目

  1. 新闻网站自动化:自动抓取新闻标题和摘要
  2. 天气预报应用:自动查询多个城市的天气
  3. 股票价格监控:定时抓取股票价格并生成报告
  4. 社交媒体分析:自动收集和分析社交媒体数据

10.3 加入社区

  • 关注 Agent Browser 的 GitHub 仓库获取最新更新
  • 参与讨论和贡献代码
  • 分享你的自动化测试经验

总结

恭喜你完成了这个 OpenCode + Agent Browser 自动化测试教程!你现在应该能够:

✅ 安装和配置 Agent Browser
✅ 编写基础的自动化测试脚本
✅ 使用 AI 提示词生成测试用例
✅ 处理常见的测试场景
✅ 调试和解决常见问题

记住,自动化测试是一个需要不断练习的技能。从简单的项目开始,逐步增加复杂性,你会变得越来越熟练。

祝你测试愉快!🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1170432.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwen-Image-2512部署卡点?4090D单卡适配问题排查步骤详解

Qwen-Image-2512部署卡点&#xff1f;4090D单卡适配问题排查步骤详解 1. 背景与部署目标 随着多模态大模型的快速发展&#xff0c;阿里云推出的 Qwen-Image-2512 作为其最新一代图像生成模型&#xff0c;在分辨率、细节还原和语义理解能力上实现了显著提升。该模型支持高达25…

DeepSeek-OCR多列文本识别:报纸杂志版式处理案例

DeepSeek-OCR多列文本识别&#xff1a;报纸杂志版式处理案例 1. 背景与挑战 在数字化转型加速的背景下&#xff0c;传统纸质媒体如报纸、杂志、期刊等正面临大规模电子化归档的需求。这类文档通常具有复杂的版式结构——多栏排版、图文混排、标题突出、表格穿插等特点&#x…

救命神器10个AI论文软件,助继续教育学生轻松搞定论文!

救命神器10个AI论文软件&#xff0c;助继续教育学生轻松搞定论文&#xff01; AI 工具如何成为论文写作的得力助手 在当前的学术环境中&#xff0c;继续教育学生面临着日益繁重的论文写作任务。无论是学位论文、研究报告还是课程作业&#xff0c;都需要投入大量的时间和精力。而…

opencode baseURL配置错误?本地API对接问题解决

opencode baseURL配置错误&#xff1f;本地API对接问题解决 1. 引言 在使用 OpenCode 构建本地 AI 编程助手的过程中&#xff0c;开发者常遇到“API 连接失败”或“模型响应超时”等问题。这些问题大多源于 baseURL 配置不当&#xff0c;尤其是在集成 vLLM Qwen3-4B-Instruc…

YOLO11实战体验:5张图快速训练出人车分割模型,效果惊艳

YOLO11实战体验&#xff1a;5张图快速训练出人车分割模型&#xff0c;效果惊艳 1. 引言 1.1 业务场景描述 在智能交通、安防监控和自动驾驶等实际应用中&#xff0c;精确识别并分割出行人与车辆是实现高级视觉理解的关键步骤。传统的目标检测只能提供边界框信息&#xff0c;…

代码随想录第三天 链表

第一题 https://leetcode.cn/problems/remove-linked-list-elements/submissions/691848826/ # Definition for singly-linked list. class ListNode:def __init__(self, val0, nextNone):self.val valself.next nextfrom typing import Optionalclass Solution:def removeE…

Java毕设项目推荐-基于SpringBoot的学生身体素质测评管理系统基于SpringBoot的大学生体测数据管理系统【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

通俗解释ESP32固件库的作用及如何正确下载安装

从零开始搞懂ESP32固件库&#xff1a;不只是“下载安装”&#xff0c;而是打通软硬桥梁 你有没有遇到过这种情况——买了一块ESP32开发板&#xff0c;兴冲冲地插上电脑&#xff0c;打开IDE&#xff0c;结果一编译就报错&#xff1a; idf.py: command not found xtensa-esp…

ACE-Step实战教程:生成爵士乐即兴演奏片段的操作方法

ACE-Step实战教程&#xff1a;生成爵士乐即兴演奏片段的操作方法 1. 引言 随着人工智能在创意领域的不断渗透&#xff0c;AI音乐生成技术正逐步从实验室走向实际创作场景。ACE-Step作为一款由ACE Studio与阶跃星辰&#xff08;StepFun&#xff09;联合推出的开源音乐生成模型…

【计算机毕业设计案例】基于SpringBoot的大学生体测数据管理系统(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

南京GEO优化系统有哪些

南京GEO优化系统有哪些在当今数字化时代&#xff0c;企业的品牌曝光和搜索排名至关重要&#xff0c;GEO优化系统应运而生。在南京&#xff0c;大麦GEO优化系统脱颖而出&#xff0c;下面为你详细介绍。大麦GEO优化系统是南京静好房科技自主研发的一款强大的GEO优化软件工具&…

树莓派4b安装系统手把手教程:零基础快速上手

树莓派4B系统安装全攻略&#xff1a;从零开始&#xff0c;一次成功 你刚拆开树莓派4B的包装盒&#xff0c;手握这块小巧却功能强大的开发板&#xff0c;满心期待它能变成你的家庭服务器、媒体中心&#xff0c;甚至AI边缘计算节点。但第一步—— 系统安装 &#xff0c;却成了…

【计算机毕业设计案例】基于 Web Service 技术的警务数据交互平台设计与实现(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

【计算机毕业设计案例】基于Java+SpringBoot的高校教室设备故障报修信息管理系统基于springboot的高校教室设备故障报修信息管理系统(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

大道至简:统一场论如何用空间几何公式解释整个宇宙

大道至简&#xff1a;统一场论如何用空间几何公式解释整个宇宙 引言&#xff1a;当物理学陷入复杂&#xff0c;我们需要回到简单 想象一下&#xff0c;如果你能用空间几何公式解释整个宇宙的运行规律&#xff0c;那会是怎样的景象&#xff1f; 自牛顿用万有引力定律统一天地运动…

西门子S7-300/400 PLC高速数据采集方案

一、案例介绍工业自动化数据高速采集一直是行业内一大难题与痛点,首先高速数据采集要保证速度,也要保证时刻的准确性。在windows系统平台下,时间稳定性是个很难的问题。PLC-Recorder通过不断升级迭代,程序内部架构…

2026年国家认可的大数据专业证书有哪些高职生可以考?

在信息技术持续演进的背景下&#xff0c;数据能力已成为一项重要的基础素养。对于高职院校大数据相关专业的学生来说&#xff0c;如何将校园内的系统性学习&#xff0c;有效地延伸为符合未来市场需求的实践技能&#xff0c;是一个值得深入思考的课题。面对2026年的就业前景&…

用multisim根据单层单面pcb板反推手绘原理图的简便方法

pcb反推原理图,目前没有专用大模型。需要手动处理。20年前就是手动反推。本文给出一个方便方法,借助multisim直接在pcb图片上手动放置元器件、连线。方便研究电路。第一步: 拍照,裁剪图片,调整亮度对比度等,pcb照…

前端核心:彻底搞懂 JavaScript 事件流

在前端开发中&#xff0c;事件流是处理 DOM 交互的核心概念&#xff0c;它决定了事件在 DOM 树中的传播路径和触发顺序。理解事件流&#xff0c;是写出健壮、可维护交互代码的基础。 一、事件流与两个阶段说明 事件流描述的是当 DOM 元素触发事件后&#xff0c;事件在整个 DOM …

2026 大专财务专业零基础能考的证书有哪些?

在数字技术日益融入各行各业的今天&#xff0c;传统职业的边界正在不断拓展与重构。对于财务专业的大专学生而言&#xff0c;这既意味着熟悉的领域正在发生深刻变化&#xff0c;也预示着个人发展拥有了更多新的可能性。当基础的核算工作越来越多地借助自动化工具完成时&#xf…