Browser-Use:AI如何“操控”浏览器进行自动化测试?

Browser-Use简介

Browser-Use是一个开源的Python库,旨在简化AI代理与浏览器之间的交互。通过集成Playwright等浏览器自动化工具,Browser-Use允许开发者使用任何支持LangChain的大型语言模型(LLM),如GPT-4、Claude等,来自动化浏览网页、提取信息、模拟用户操作等。这不仅极大地提高了网页数据抓取的效率,还为开发者提供了一个灵活、可扩展的框架,用于构建复杂的网页自动化任务。

Browser-Use项目托管在GitHub上,拥有详细的文档、示例代码和活跃的社区支持。项目主页提供了快速上手指南、功能演示、配置选项以及贡献指南等丰富的内容,帮助开发者快速了解和使用Browser-Use。

GitHub:https://github.com/browser-use/browser-use

Browser-Use的核心功能

Browser-Use提供了一系列强大的功能,以满足不同场景下的网页自动化需求。以下是一些核心功能的介绍:

  1. 视觉+HTML提取:Browser-Use能够自动解析网页内容,提取出文本、图片等视觉元素以及HTML结构,为AI代理提供丰富的输入信息。
  2. 自动多标签页管理:在处理复杂的网页任务时,往往需要同时打开多个标签页。Browser-Use能够自动管理这些标签页,确保AI代理能够高效地在不同页面之间切换。
  3. 提取点击元素的XPath并重复LLM动作:当AI代理在网页上执行点击操作时,Browser-Use会记录这些操作的XPath路径。这允许开发者在需要时重复执行相同的LLM动作,提高了自动化任务的可靠性和稳定性。
  4. 添加自定义动作:除了内置的自动化操作外,Browser-Use还支持开发者注册自定义动作。这些动作可以是保存文件、推送数据库、发送通知、获取用户输入等,极大地扩展了AI代理的功能范围。
  5. 自我纠正:在处理网页任务时,AI代理可能会遇到各种预料之外的情况。Browser-Use通过提供自我纠正机制,允许AI代理在发现错误时重新尝试或调整策略,从而提高了自动化任务的成功率。
  6. 支持多种LLM:Browser-Use与LangChain紧密集成,支持使用任何LangChain支持的LLM模型。这意味着开发者可以根据自己的需求选择合适的LLM模型,以实现最佳的自动化效果。
  7. 并行化多个代理:为了提高自动化任务的效率,Browser-Use允许开发者并行化多个AI代理。这些代理可以共享同一个浏览器实例,但每个代理都有自己独立的上下文环境,确保任务之间的独立性。

快速上手指南

接下来,我们将通过一个简单的示例来展示如何使用Browser-Use来自动化网页任务。假设我们需要查找从巴厘岛到阿曼的单程航班,并在Google Flights上返回最便宜的选项。以下是具体的步骤:

  1. 安装依赖
    首先,我们需要安装Browser-Use及其依赖项。可以使用pip命令来完成安装:

    pip install browser-use playwright
    playwright install
    
  2. 配置API密钥
    由于Browser-Use使用了LangChain和Playwright等外部服务,因此我们需要将相应的API密钥添加到.env文件中。例如:

    LANGCHAIN_API_KEY=your_langchain_api_key
    PLAYWRIGHT_BROWSER_TYPE=chromium  # 指定浏览器类型,如chromium、firefox等
    
  3. 编写代码
    接下来,我们可以编写Python代码来实现自动化任务。以下是一个完整的示例代码:

    from langchain_openai import ChatOpenAI
    from browser_use import Agent
    import asyncio
     
    async def main():
        # 初始化AI代理,并设置任务描述和LLM模型
        agent = Agent(
            task="Find a one-way flight from Bali to Oman on 12 January 2025 on Google Flights. Return me the cheapest option.",
            llm=ChatOpenAI(model="gpt-4")  # 这里使用GPT-4模型,你可以根据需求选择其他模型
        )
     
        # 运行AI代理并获取结果
        result = await agent.run()
        print(result)
     
    # 运行主函数
    asyncio.run(main())
    

    在上述代码中,我们首先导入了必要的库,并定义了主函数main。在主函数中,我们创建了一个AI代理对象agent,并设置了任务描述和LLM模型。然后,我们调用agent.run()方法来运行AI代理,并打印出结果。

  4. 查看结果
    运行代码后,AI代理将自动打开Google Flights网页,并根据任务描述搜索从巴厘岛到阿曼的单程航班。最终,它将返回最便宜的航班选项,并将其打印到控制台上。

更多示例与高级用法

除了上述基本示例外,Browser-Use还支持许多高级用法和自定义配置。以下是一些值得探索的内容:

扫描二维码关注公众号,回复: 17618387 查看本文章
  • 自定义动作:通过注册自定义动作,你可以让AI代理执行更复杂的任务,如保存文件、推送数据库等。
  • 多标签页管理:在处理需要同时打开多个网页的任务时,你可以利用Browser-Use的自动多标签页管理功能来提高效率。
  • XPath历史记录:通过获取XPath历史记录,你可以追踪AI代理在网页上的所有操作,这对于调试和优化自动化任务非常有用。
  • 浏览器配置:Browser-Use提供了丰富的浏览器配置选项,如是否以无头模式运行、是否保持浏览器打开等,以满足不同场景下的需求。

结论与展望

Browser-Use作为一个开源的Python库,为开发者提供了一个强大而灵活的框架,用于构建复杂的网页自动化任务。通过集成Playwright等浏览器自动化工具和LangChain等AI服务,Browser-Use能够自动化执行各种网页任务,如搜索航班、查找工作机会、提取网页数据等。未来,随着AI技术的不断发展和浏览器自动化需求的日益增长,Browser-Use有望成为更多开发者的首选工具之一。

如果你对Browser-Use感兴趣,不妨加入其GitHub社区,与其他开发者一起交流心得、分享经验。同时,也欢迎你为Browser-Use贡献代码、提出功能建议或参与讨论,共同推动这个项目的发展和完善。