当前位置: 首页 > news >正文

Browser-Use在UI自动化测试中的应用

一、Browser-Use简介

Browser-Use是一个开源可以操控浏览器的Python库,使用者能够通过LLM与浏览器自动化操作结合起来。这个库支持自然语言描述自动化测试任务或者定义AI AGENT(智能体)任务,通过使用它可以操作浏览器来执行特定操作,如访问网页、单击按钮、提取网页信息等。

Browser-Use具备以下核心特点。

  1. 视觉与HTML内容解析:Browser-Use具备高级解析能力,能够自动识别并提取网页中的视觉元素和HTML结构,为AI智能体提供详尽的数据输入,从而实现精准的网页内容处理。
  2. 多标签页自动化管理:面对需要同时操作多个网页标签的复杂任务,Browser-Use能够高效地管理这些标签页,确保AI智能体能够无缝切换,提高任务处理的效率。
  3. 记录和重复执行特定操作:Browser-Use能够记录AI智能体执行点击操作时的XPath路径,使得使用者能够根据需要复现特定的操作,增强了自动化流程的可重复性和稳定性。
  4. 自定义操作:Browser-Use不仅提供了一系列内置的自动化操作,还允许使用者注册自定义操作,如文件保存、数据库推送、通知发送以及用户输入获取等,极大地丰富了AI智能体的功能。
  5. 自我纠正机制:在自动化网页任务的过程中,AI智能体可能会遇到意外情况。Browser-Use通过内置的自我纠正机制,使AI智能体能够在检测到错误时重新尝试或调整策略,从而提升任务的成功率。
  6. 并行执行:为了进一步提升自动化任务的效率,Browser-Use支持并行执行多个AI智能体。这些智能体可以共享浏览器实例,但每个智能体都维护独立的上下文环境,确保了任务执行的独立性和互不干扰。

二、 Browser-Use应用案例

    这里以Browser-Use提供的一个在“kayak”网站上查找2024年12月25日至2025年2月2日从苏黎世飞往北京的航班为例来了解如何使用Browser-Use来自动化操控浏览器完成测试任务。安装相关依赖库,进入命令行控制台,输入如下命令。

控制台命令

pip install browser-use      #安装browser-use库

playwright install           #安装playwright

智能体任务代码

from langchain_openai import ChatOpenAI

from browser_use import Agent

import asyncio

async def main():

    agent = Agent(

        task="Find flights on kayak.com from Zurich to Beijing from 25.12.2024 to "

             "02.02.2025.",

        llm=ChatOpenAI(model="gpt-4o"),

    )

    result = await agent.run()

    print(result)

asyncio.run(main())

千万不要忘记将API密钥添加到“.env”文件中,这里应用的是“gpt-4o”模型,所以需要配置OPENAI_API_KEY

.env文件内容

OPENAI_API_KEY="您的API KEY"

执行代码。将会自动弹出浏览器并且智能体开始按照给定的测试任务。自行访问“kayak”网站,按照要求查找2024年12月25日至2025年2月2日从苏黎世飞往北京的航班,会在执行日志中给出该测试任务的执行步骤,包括“Evaluation”、“Memory”、“Next Goal”、“Action”、“Result”等信息,从这些执行步骤清晰的看到智能体是如何根据任务来规划解决任务、具体执行了那些操作和根据观察执行后结果来评估执行效果以及做后续的规划等,如图3-17,就是Browser-Use执行过程中的操作截图。

Browser-Use执行过程中的操作截图

执行完成后,将给出2024年12月25日至2025年2月2日从苏黎世飞往北京的优选航班信息,如图所示。

从苏黎世飞往北京的优选航班信息

Browser-Use不仅支持OPENAI、ANTHROPIC的商用模型也支持部署在Ollama环境下的开源模型。但是,有时尽管同一个提示词在应用不同模型时可能会出现不同的结果,所以建议大家使用一些效果好的模型。

相关文章:

  • vue源码(二)
  • Ae 效果详解:VR 发光
  • 【已解决】MobaXterm中X11-Forwarding无法使用
  • Javascript 函数
  • Web3 的去中心化治理:如何实现透明与公正
  • 【后端开发】go-zero微服务框架实践(goland框架对比,go-zero开发实践,文件上传问题优化等等)
  • Elasticsearch:“Your trial license is expired”
  • 学习LED驱动知识(二)
  • 使用kolla-ansible单点部署openstack云平台
  • MySQL 值为Null会导致的问题
  • 【docker简化部署有状态prometheus+grafana】
  • Linux基础之基础概念
  • Java字符串(算法题相关)
  • 【第23节】C++设计模式(行为模式)-Interpreter(解释器)模式
  • 【面试】Java 集合
  • 使用格式工厂提取视频中的音频
  • 中国AI新星Manus:通用Agent的破晓时刻
  • 《OkHttp:工作原理 拦截器链深度解析》
  • 达梦数据库、图形管理工具安装和 JDBC 使用
  • 【强化学习笔记2】奖励稀疏的应对方式以及逆强化学习
  • 金地集团:今年前4个月实现销售额109.3亿元,同比下降52.44%
  • 中华人民共和国和俄罗斯联邦关于全球战略稳定的联合声明
  • 正荣地产:前4个月销售14.96亿元,控股股东已获委任联合清盘人
  • 国家主席习近平同普京总统出席签字和合作文本交换仪式
  • 视频丨习近平同普京会谈:共同弘扬正确二战史观,维护联合国权威和地位
  • 妻子藏匿一岁幼儿一年多不让丈夫见,法院发出人格权侵害禁令