AI测试之:browser-use

(AI搜的)以下是Browser-use的优缺点:

### 优点

- **跨浏览器支持**:Browser-use支持多个常见的浏览器(如Chrome、Firefox等),可以在不同的浏览器环境中执行自动化任务,保证一致性。

- **简洁的API**:提供了一个高层次的API,用户可以使用更简单的命令进行浏览器操作,而不需要深入理解底层实现。

- **任务自动化**:用户可以轻松地编写脚本,实现自动化任务,例如自动化填充表单、点击按钮、导航到特定页面等,极大提高了工作效率。

- **集成与扩展**:Browser-use可与其他工具(如pytest等测试框架)结合使用,帮助用户实现端到端的自动化测试。

- **支持浏览器插件**:可以通过设置插件与浏览器交互,扩展功能,支持像广告屏蔽、性能分析等插件的操作。

- **浏览器控制与验证**:除了基础的自动化操作,Browser-use还提供了验证功能,允许开发者检查网页元素的状态、获取信息并进行验证。

- **智能纠错**:拥有自我修正能力,在操作失败时能自动调整策略并重试。

- **多语言模型支持**:可轻松集成LangChain提供的各类LLM(如OpenAI、Anthropic、Cohere等)进行高级任务管理。

- **基于Playwright**:默认使用Playwright进行浏览器的无头启动、页面操作和渲染控制;对常见网页交互场景提供友好的抽象。

- **云端版&本地版**:除了本地安装运行外,Browser-use也提供托管版本,可以直接在云端执行,无需配置本地环境。

- **Gradio UI测试**:内置示例可以利用Gradio搭建简易的可视化界面,方便开发者快速测试并可视化浏览器自动化流程。

- **视觉+HTML提取**:能够自动解析网页内容,提取出文本、图片等视觉元素以及HTML结构,为AI代理提供丰富的输入信息。

- **自动多标签页管理**:在处理复杂的网页任务时,能够自动管理多个标签页,确保AI代理能够高效地在不同页面之间切换。

- **添加自定义动作**:支持开发者注册自定义动作,如保存文件、推送数据库、发送通知、获取用户输入等,极大地扩展了AI代理的功能范围。

- **并行化多个代理**:为了提高自动化任务的效率,允许开发者并行化多个AI代理。这些代理可以共享同一个浏览器实例,但每个代理都有自己独立的上下文环境,确保任务之间的独立性。

### 缺点

- **对网络环境要求较高**:Browser-use在执行自动化任务时,需要与浏览器进行通信,如果网络不稳定,可能会导致任务执行失败或出现延迟。

- **学习成本**:对于非技术用户或对自动化工具不熟悉的用户,Browser-use的使用需要一定的学习成本,包括对Python编程语言的了解、对自动化测试框架的熟悉等。

- **资源消耗**:在执行复杂任务或同时运行多个代理时,可能会占用较多的系统资源,如内存、CPU等,这可能会影响其他程序的运行。

- **依赖第三方服务**:Browser-use依赖于一些第三方服务和工具,如Playwright、LangChain等,如果这些服务出现问题或更新不及时,可能会影响Browser-use的正常使用。


安装及介绍

https://docs.browser-use.com/introduction


运行通过的脚本如下:(根据实际需要修改部分参数)

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

    )

    # 使用已有的浏览器,默认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',  # 注意参数名,官网上面的示例是错的

            # 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======== 测试结果 ========")

    print(result)

if __name__ == "__main__":

    import time

    task = """

            1. 访问链接https://ifs

            2. 输入用户名“lum”

            3. 输入密码“iFS”

            4. 点击登录

            """

    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"总耗时 {hours} 小时 {minutes} 分钟 {remaining_seconds} 秒")


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容