browser-use WebUI + DeepSeek 基于AI的UI自动化解决方案

一、browser-use是什么

Browser Use 是一款开源Python库,专为大语言模型设计的智能浏览器工具,目的是让 AI 能够像人类一样自然地浏览和操作网页。它支持多标签页管理、视觉识别、内容提取,并能记录和重复执行特定动作。Browser Use 还支持开发者自定义动作,如保存数据到数据库,文件等。支持多种主流的大型语言模型,如 DeepSeek,GPT-4 和 Claude等,并支持同时运行多个任务,具备自我修正功能,从而提高任务执行的准确性和效率。

官网:https://browser-use.com/

项目网址 :https://github.com/browser-use/browser-use

Browser-use采用的技术栈为:

  • 1、Observation:页面解析层,采用DOM解析+截图辅助的非视觉+视觉方案。
    • DOM解析(HTML + XPath):Browser-use通过底层框架(如Playwright)获取当前页面的完整HTML结构,并提取文本、元素属性等关键信息。
    • 截图辅助:在某些情况下(如验证码识别、动态图形验证),纯HTML解析可能无法直接获取信息,此时系统会自动或按需生成页面截图,并将截图作为辅助输入传递给视觉模型
  • 2、Thought:核心决策层,分析Observation提供的页面信息并生成操作指令。
  • 3、Action:指令执行层,微软开发的Playwright作为浏览器控制框架直接与浏览器交互完成自动化任务。Playwright作为新一代高性能UI自动化测试框架,提供低延迟、高稳定性的浏览器控制能力,支持快速页面加载和元素操作。

二、browser-use webui 主要功能

提供了全新的网页界面,简单好用,方便操作。
支持更多大语言模型,比如 Gemini、OpenAI、Azure 等,哦,还有最近爆火的国产大模型 DeepSeek,未来还会加更多。
支持用自己的浏览器,不用再反复登录,还能录屏。
定制了更智能的 Agent,通过优化后的提示让浏览器使用更高效。

使用场景

  • 自动化任务:适合重复高频的浏览器操作任务,如表单填写,信息检索,文件下载
  • 数据收集:适合爬取网络上的数据,如爬虫自动化测试:适合WEB UI
  • 自动化测试,结合pytest轻松实现web自动化

三、使用教程

1.python 安装

python 官网: https://www.python.org/downloads/
    版本必须在 3.11 以上。

2、把项目clone下来

git clone https://github.com/browser-use/web-ui.git
cd web-ui

3、安装依赖

pip install browser-use
playwright install
pip install -r requirements.txt

4、配置环境

基于 .env.example 复制一个 .env 文件,并在 .env 文件中修改以下信息

# 路径 Chrome 浏览器路径(检查下自己的路径),例如
# Mac OS "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# Windows "C:\Program Files\Google\Chrome\Application\chrome.exe"
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"

# 浏览器的用户数据路径,例如
# Mac OS "/Users/<YourUsername>/Library/Application Support/Google/Chrome"
# Windows "C:\Users\<YourUsername>\AppData\Local\Google\Chrome\User Data"
CHROME_USER_DATA="/Users/<YourUsername>/Library/Application Support/Google/Chrome"

# 还有一些大模型的 API Key 也要改
...

5、启动

执行如下命令启动

python webui.py --ip 127.0.0.1 --port 7788

启动成功如下所示:
在这里插入图片描述
浏览器访问 http://127.0.0.1:7788/,看到如下界面就成功了
在这里插入图片描述

6、配置

1.配置 Agent

注意,这里的 Use Vision,默认是选中状态,如果使用的 DeepSeek 不能勾选,因为 DeepSeek 不支持视觉输入,注意这里很多人踩坑,一定要注意。
在这里插入图片描述

2.配置要用的大模型

例如,下面我用的是 deepseek。
在这里插入图片描述

3.关于浏览器的一些设置

在这里插入图片描述

四、DeepSeek 的API获取

DeepSeek :https://platform.deepseek.com/api_keys
在这里插入图片描述

五、界面Demo 演示

输入要执行的任务就可以点击 Run Agent 了
在这里插入图片描述
以下是运行时的项目日志输出,记录了执行步骤
在这里插入图片描述
执行的过程中也会打开浏览器和跳转到目标网站,按照区块一样对页面元素做标注。
在这里插入图片描述
在 Recodings 下会记录执行过程和反馈结果,还可以回看的。
在这里插入图片描述

六、代码示例

1.创建Agent

from langchain_openai import ChatOpenAI
from browser_use import Agent
import asyncio
 
async def main():
    agent = Agent(
        task="Go to Reddit, search for 'browser-use' in the search bar, click on the first post and return the first comment.",
        llm=ChatOpenAI(model="gpt-4o"),
    )
    result = await agent.run()
    print(result)
 
asyncio.run(main())

如果没有openai-key的可以使用其他模型,下面以DeepSeek为例:

该文件在 browser-use/examples/deepseek.py

import asyncio
import os
 
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from pydantic import SecretStr
 
from browser_use import Agent
 
# dotenv
load_dotenv()
 
api_key = os.getenv('DEEPSEEK_API_KEY', 'sk-xxxxxx')
if not api_key:
	raise ValueError('DEEPSEEK_API_KEY is not set')
 
 
async def run_search():
	agent = Agent(
		task=(
			
			"1. 在搜索框中输入抖音并搜索"
			'2. 点击搜索结果中的第一个链接'
			'3. 关闭扫码登录'	
            '3. 返回第一个视频的内容'
   
		),
		llm=ChatOpenAI(
			base_url='https://api.deepseek.com/v1',
			model='deepseek-chat',
			api_key=SecretStr(api_key),
		),
		use_vision=False,
	)
 
	await agent.run()
 
 
if __name__ == '__main__':
	asyncio.run(run_search())

运行结果如下:
在这里插入图片描述

七、实例展示

一、爬取基金数据

llm = ChatOpenAI(
    model='deepseek-chat',
    api_key='*************',
    base_url='https://api.deepseek.com',
    temperature=0
)

asyncdefmain():
    agent = Agent(
        task="""
        1、导航到网址:https://fund.eastmoney.com/
        2、点击基金排行
        3、返回排行前10的基金数据,以json格式返回
        """,
        llm=llm,
        use_vision=False,
    )
    result = await agent.run()
    print(result.final_result())

asyncio.run(main())

二、效果展示

1、导航到指定网址

在这里插入图片描述

2、点击基金排行

在这里插入图片描述

3、提取top 10的基金数据
DEBUG    [browser_use] --act Execution time: 0.00 seconds
INFO     [controller] 📄  Extracted from page
: ```json
{
"top_10_funds": [
    {
      "rank": 1,
      "fund_code": "018124",
      "fund_name": "永赢先进制造智选混合发起A",
      "date": "03-07",
      "unit_net_value": "2.1654",
      "cumulative_net_value": "2.1654",
      "daily_growth_rate": "2.21%",
      "1_week": "9.15%",
      "1_month": "17.58%",
      "3_months": "64.06%",
      "6_months": "191.13%",
      "1_year": "115.94%",
      "since_inception": "116.54%",
      "handling_fee": "0.15%"
    },
    {
      "rank": 2,
      "fund_code": "018125",
      "fund_name": "永赢先进制造智选混合发起C",
      "date": "03-07",
      "unit_net_value": "2.1501",
      "cumulative_net_value": "2.1501",
      "daily_growth_rate": "2.21%",
      "1_week": "9.15%",
      "1_month": "17.54%",
      "3_months": "63.89%",
      "6_months": "190.55%",
      "1_year": "115.07%",
      "since_inception": "115.01%",
      "handling_fee": "0.00%"
    },
    {
      "rank": 3,
      "fund_code": "016530",
      "fund_name": "鹏华碳中和主题混合A",
      "date": "03-07",
      "unit_net_value": "1.7881",
      "cumulative_net_value": "1.7881",
      "daily_growth_rate": "3.00%",
      "1_week": "10.23%",
      "1_month": "22.92%",
      "3_months": "68.07%",
      "6_months": "178.39%",
      "1_year": "104.00%",
      "since_inception": "78.81%",
      "handling_fee": "0.15%"
    },
    {
      "rank": 4,
      "fund_code": "016531",
      "fund_name": "鹏华碳中和主题混合C",
      "date": "03-07",
      "unit_net_value": "1.7685",
      "cumulative_net_value": "1.7685",
      "daily_growth_rate": "3.00%",
      "1_week": "10.21%",
      "1_month": "22.86%",
      "3_months": "67.81%",
      "6_months": "177.59%",
      "1_year": "102.79%",
      "since_inception": "76.85%",
      "handling_fee": "0.00%"
    },
    {
      "rank": 5,
      "fund_code": "001970",
      "fund_name": "泰信鑫选灵活配置混合A",
      "date": "03-07",
      "unit_net_value": "1.3310",
      "cumulative_net_value": "1.3310",
      "daily_growth_rate": "-1.04%",
      "1_week": "7.25%",
      "1_month": "4.80%",
      "3_months": "31.00%",
      "6_months": "125.59%",
      "1_year": "95.45%",
      "since_inception": "33.10%",
      "handling_fee": "0.15%"
    },
    {
      "rank": 6,
      "fund_code": "002580",
      "fund_name": "泰信鑫选灵活配置混合C",
      "date": "03-07",
      "unit_net_value": "1.3220",
      "cumulative_net_value": "1.3220",
      "daily_growth_rate": "-0.97%",
      "1_week": "7.31%",
      "1_month": "4.84%",
      "3_months": "31.15%",
      "6_months": "125.60%",
      "1_year": "95.27%",
      "since_inception": "31.67%",
      "handling_fee": "0.00%"
    },
    {
      "rank": 7,
      "fund_code": "016295",
      "fund_name": "新华利率债债券E",
      "date": "03-07",
      "unit_net_value": "1.7977",
      "cumulative_net_value": "1.9906",
      "daily_growth_rate": "-0.13%",
      "1_week": "-0.06%",
      "1_month": "-0.66%",
      "3_months": "0.85%",
      "6_months": "94.13%",
      "1_year": "92.89%",
      "since_inception": "99.00%",
      "handling_fee": "0.00%"
    },
    {
      "rank": 8,
      "fund_code": "019457",
      "fund_name": "平安先进制造主题股票发起A",
      "date": "03-07",
      "unit_net_value": "1.7593",
      "cumulative_net_value": "1.7593",
      "daily_growth_rate": "1.78%",
      "1_week": "10.41%",
      "1_month": "23.92%",
      "3_months": "57.40%",
      "6_months": "134.29%",
      "1_year": "90.71%",
      "since_inception": "75.93%",
      "handling_fee": "0.15%"
    },
    {
      "rank": 9,
      "fund_code": "019458",
      "fund_name": "平安先进制造主题股票发起C",
      "date": "03-07",
      "unit_net_value": "1.7452",
      "cumulative_net_value": "1.7452",
      "daily_growth_rate": "1.78%",
      "1_week": "10.40%",
      "1_month": "23.87%",
      "3_months": "57.17%",
      "6_months": "133.60%",
      "1_year": "89.59%",
      "since_inception": "74.52%",
      "handling_fee": "0.00%"
    },
    {
      "rank": 10,
      "fund_code": "007713",
      "fund_name": "华富科技动能混合A",
      "date": "03-07",
      "unit_net_value": "1.4600",
      "cumulative_net_value": "1.5100",
      "daily_growth_rate": "1.47%",
      "1_week": "8.19%",
      "1_month": "18.94%",
      "3_months": "47.07%",
      "6_months": "135.41%",
      "1_year": "89.14%",
      "since_inception": "51.93%",
      "handling_fee": "0.15%"
    }
  ]
}

二、结合pytest实现页面自动化测试
异步执行需要安装插件pytest-asyncio

pip install pytest-asyncio
@pytest.mark.asyncio
@pytest.mark.parametrize("username,password,expected", [("kevin@xxxx.com", "a123456", "kevin"),("kevin@xxxx.com", "123456", "账号密码输入错误")])
asyncdeftest_login(username, password, expected):
    agent = Agent(
        task=f"""
        1、导航到网址:https://xxxxxxx.com
        2、输入用户名:{username}, 密码:{password}
        3、点击登录按钮
        4、验证是否登录成功,登录成功返回{expected}
        """,
        llm=llm,
        use_vision=False,
    )
    result = await agent.run()
    assert expected in str(result.final_result())

三、总结

Browser Use 深度集成大语言模型(LLM),通过语义理解与视觉决策链实现零硬编码自动化,彻底颠覆传统脚本开发模式。AI 自动解析页面结构、动态生成操作路径,无需人工编写 XPath/CSS 定位器,开发效率提升 5 倍以上,尤其擅长处理动态验证、反爬策略及多步骤交互场景,成为金融数据抓取、跨平台测试的新一代智能引擎。

<think>好的,我现在要解决用户的问题,关于WebUI启动时浏览器报错的解决方案。首先,我需要仔细看看用户提供的引用内容,找出相关的线索。 用户提到了几个引用,其中引用[1]提到在浏览器自动化时,通过添加参数--disable-blink-features=AutomationControlled来避免检测。这可能适用于WebUI启动时的类似问题,因为有时候浏览器会检测自动化工具,导致报错。所以,这个解决方法可能适用,需要建议用户修改浏览器选项,添加这个参数。 引用[4]指出安装路径中的中文或空格可能导致问题。用户需要检查WebUI的安装路径是否包含中文或空格,建议路径全英文且无空格。比如,把文件夹放在D盘的根目录下,而不是有中文名的目录里。 引用[5]提到浏览器和服务器时间差异的问题,这可能导致时间相关的错误。这时候需要确保系统时间准确,或者同步时间服务器。可能需要指导用户如何同步时间,比如在设置中启用自动时间同步。 接下来,用户的问题是关于WebUI启动时的浏览器报错,结合引用中的解决方案,我需要整理出几个步骤: 1. 修改浏览器配置,禁用自动化检测,使用引用[1]的方法添加参数。 2. 检查安装路径是否有中文或空格,根据引用[4]的建议调整路径。 3. 检查系统时间是否准确,解决时间差异问题,如引用[5]所述。 此外,可能还需要考虑其他常见问题,比如驱动程序是否正确安装,路径是否正确。例如引用[2]提到将chromedriver.exe放在指定目录,可能需要确认用户是否放置正确,或者是否需要更新驱动程序。 需要将这些步骤分点列出,结构清晰,并引用对应的引用来源。同时,生成相关问题,帮助用户进一步排查问题,比如路径问题、时间同步、驱动程序等。 最后,确保回答符合用户的要求,使用中文,LaTeX格式正确,问题相关且具体。</think>### WebUI浏览器启动报错解决方案 #### 1. **禁用浏览器自动化检测** 若浏览器检测到自动化工具(如WebDriver),可能触发安全机制导致报错。可通过修改浏览器配置禁用相关检测: ```python # 以Edge浏览器为例,添加启动参数 options = webdriver.EdgeOptions() options.add_argument("--disable-blink-features=AutomationControlled") ``` 此方法通过屏蔽浏览器的自动化控制检测功能解决问题[^1]。 #### 2. **检查安装路径合法性** WebUI的安装路径若包含**中文**或**空格**,可能导致路径解析错误: - **错误示例**:`D:/Program Files/AI绘画/`(含空格和中文) - **正确示例**:`D:/WebUI/stable-diffusion/`(全英文且无空格) 建议将WebUI文件夹放置在根目录下,并确保路径简洁[^4]。 #### 3. **同步浏览器与服务器时间** 时间差异过大会引发验证错误(如引用[5]的444秒漂移警告): - **Windows系统**:设置 > 时间和语言 > 自动设置时间 > 开启 - **Linux系统**:使用`ntpdate`命令同步时间服务器 #### 4. **验证驱动程序完整性** 确保浏览器驱动(如ChromeDriver)与浏览器版本匹配,并按规范放置: ```text # 驱动程序应放入指定目录,例如: python安装目录/Lib/site-packages/selenium/webdriver/chrome/ ``` 若版本不匹配,需重新下载对应版本的驱动[^2]。 #### 5. **依赖文件完整性检查** 部分报错由缺失模型文件引起(如Stable Diffusion的`codeformer-v0.1.0.pth`): - 检查`stable-diffusion-webui/models/Codeformer/`目录下文件是否完整 - 缺失时需重新下载并放置到正确位置[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值