(AI搜的)以下是Browser-use的優(yōu)缺點(diǎn):
### 優(yōu)點(diǎn)
- **跨瀏覽器支持**:Browser-use支持多個(gè)常見的瀏覽器(如Chrome、Firefox等),可以在不同的瀏覽器環(huán)境中執(zhí)行自動(dòng)化任務(wù),保證一致性。
- **簡(jiǎn)潔的API**:提供了一個(gè)高層次的API,用戶可以使用更簡(jiǎn)單的命令進(jìn)行瀏覽器操作,而不需要深入理解底層實(shí)現(xiàn)。
- **任務(wù)自動(dòng)化**:用戶可以輕松地編寫腳本,實(shí)現(xiàn)自動(dòng)化任務(wù),例如自動(dòng)化填充表單、點(diǎn)擊按鈕、導(dǎo)航到特定頁(yè)面等,極大提高了工作效率。
- **集成與擴(kuò)展**:Browser-use可與其他工具(如pytest等測(cè)試框架)結(jié)合使用,幫助用戶實(shí)現(xiàn)端到端的自動(dòng)化測(cè)試。
- **支持瀏覽器插件**:可以通過(guò)設(shè)置插件與瀏覽器交互,擴(kuò)展功能,支持像廣告屏蔽、性能分析等插件的操作。
- **瀏覽器控制與驗(yàn)證**:除了基礎(chǔ)的自動(dòng)化操作,Browser-use還提供了驗(yàn)證功能,允許開發(fā)者檢查網(wǎng)頁(yè)元素的狀態(tài)、獲取信息并進(jìn)行驗(yàn)證。
- **智能糾錯(cuò)**:擁有自我修正能力,在操作失敗時(shí)能自動(dòng)調(diào)整策略并重試。
- **多語(yǔ)言模型支持**:可輕松集成LangChain提供的各類LLM(如OpenAI、Anthropic、Cohere等)進(jìn)行高級(jí)任務(wù)管理。
- **基于Playwright**:默認(rèn)使用Playwright進(jìn)行瀏覽器的無(wú)頭啟動(dòng)、頁(yè)面操作和渲染控制;對(duì)常見網(wǎng)頁(yè)交互場(chǎng)景提供友好的抽象。
- **云端版&本地版**:除了本地安裝運(yùn)行外,Browser-use也提供托管版本,可以直接在云端執(zhí)行,無(wú)需配置本地環(huán)境。
- **Gradio UI測(cè)試**:內(nèi)置示例可以利用Gradio搭建簡(jiǎn)易的可視化界面,方便開發(fā)者快速測(cè)試并可視化瀏覽器自動(dòng)化流程。
- **視覺(jué)+HTML提取**:能夠自動(dòng)解析網(wǎng)頁(yè)內(nèi)容,提取出文本、圖片等視覺(jué)元素以及HTML結(jié)構(gòu),為AI代理提供豐富的輸入信息。
- **自動(dòng)多標(biāo)簽頁(yè)管理**:在處理復(fù)雜的網(wǎng)頁(yè)任務(wù)時(shí),能夠自動(dòng)管理多個(gè)標(biāo)簽頁(yè),確保AI代理能夠高效地在不同頁(yè)面之間切換。
- **添加自定義動(dòng)作**:支持開發(fā)者注冊(cè)自定義動(dòng)作,如保存文件、推送數(shù)據(jù)庫(kù)、發(fā)送通知、獲取用戶輸入等,極大地?cái)U(kuò)展了AI代理的功能范圍。
- **并行化多個(gè)代理**:為了提高自動(dòng)化任務(wù)的效率,允許開發(fā)者并行化多個(gè)AI代理。這些代理可以共享同一個(gè)瀏覽器實(shí)例,但每個(gè)代理都有自己獨(dú)立的上下文環(huán)境,確保任務(wù)之間的獨(dú)立性。
### 缺點(diǎn)
- **對(duì)網(wǎng)絡(luò)環(huán)境要求較高**:Browser-use在執(zhí)行自動(dòng)化任務(wù)時(shí),需要與瀏覽器進(jìn)行通信,如果網(wǎng)絡(luò)不穩(wěn)定,可能會(huì)導(dǎo)致任務(wù)執(zhí)行失敗或出現(xiàn)延遲。
- **學(xué)習(xí)成本**:對(duì)于非技術(shù)用戶或?qū)ψ詣?dòng)化工具不熟悉的用戶,Browser-use的使用需要一定的學(xué)習(xí)成本,包括對(duì)Python編程語(yǔ)言的了解、對(duì)自動(dòng)化測(cè)試框架的熟悉等。
- **資源消耗**:在執(zhí)行復(fù)雜任務(wù)或同時(shí)運(yùn)行多個(gè)代理時(shí),可能會(huì)占用較多的系統(tǒng)資源,如內(nèi)存、CPU等,這可能會(huì)影響其他程序的運(yùn)行。
- **依賴第三方服務(wù)**:Browser-use依賴于一些第三方服務(wù)和工具,如Playwright、LangChain等,如果這些服務(wù)出現(xiàn)問(wèn)題或更新不及時(shí),可能會(huì)影響B(tài)rowser-use的正常使用。
安裝及介紹
https://docs.browser-use.com/introduction

運(yùn)行通過(guò)的腳本如下:(根據(jù)實(shí)際需要修改部分參數(shù))
from langchain_openai import ChatOpenAI
from browser_use import Agent, BrowserConfig, Browser
import asyncio
from pydantic import SecretStr
import os
# 獲取父目錄
parent_directory = os.path.dirname(__file__)
# 拼接新路徑
save_path = os.path.join(parent_directory, 'conversation_history')
# load_dotenv()
ds_key = 'sk-e6'
def convert_seconds(seconds):
? ? hours = seconds // 3600
? ? minutes = (seconds % 3600) // 60
? ? remaining_seconds = seconds % 60
? ? return hours, minutes, remaining_seconds
async def main():
? ? # Basic configuration
? ? config = BrowserConfig(
? ? ? ? headless=False,
? ? ? ? disable_security=True
? ? )
? ? # 使用已有的瀏覽器,默認(rèn)debug端口9222
? ? browser = Browser(
? ? ? ? # config=config
? ? ? ? config=BrowserConfig(
? ? ? ? ? ? # Specify the path to your Chrome executable
? ? ? ? ? ? chrome_instance_path='C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe',? # 注意參數(shù)名,官網(wǎng)上面的示例是錯(cuò)的
? ? ? ? ? ? # For Windows, typically: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
? ? ? ? ? ? # For Linux, typically: '/usr/bin/google-chrome'
? ? ? ? )
? ? )
? ? # 初始化 Agent,指定使用 DeepSeek 作為推理模型
? ? llm = ChatOpenAI(
? ? ? ? base_url='https://api.deepseek.com/v1',
? ? ? ? model='deepseek-reasoner',
? ? ? ? api_key=SecretStr(ds_key),
? ? )
? ? agent = Agent(
? ? ? ? task=task,
? ? ? ? llm=llm,
? ? ? ? use_vision=False,
? ? ? ? save_conversation_path=save_path,? # Save chat logs
? ? ? ? # browser=browser,? # Browser instance will be reused
? ? ? ? max_failures=2,
? ? ? ? max_actions_per_step=1,
? ? )
? ? result = await agent.run()
? ? print("\n======== 測(cè)試結(jié)果 ========")
? ? print(result)
if __name__ == "__main__":
? ? import time
? ? task = """
? ? ? ? ? ? 1. 訪問(wèn)鏈接https://ifs
? ? ? ? ? ? 2. 輸入用戶名“l(fā)um”
? ? ? ? ? ? 3. 輸入密碼“iFS”
? ? ? ? ? ? 4. 點(diǎn)擊登錄
? ? ? ? ? ? """
? ? start_time = time.time()
? ? asyncio.run(main())
? ? end_time = time.time()
? ? elapsed_time = int(end_time - start_time)
? ? hours, minutes, remaining_seconds = convert_seconds(elapsed_time)
? ? print(f"總耗時(shí) {hours} 小時(shí) {minutes} 分鐘 {remaining_seconds} 秒")
