# base-selenium **Repository Path**: pivotree/base-selenium ## Basic Information - **Project Name**: base-selenium - **Description**: selenium基本封装,支持在vscode中进行jupyter notebook的操作,提高开发效率。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-02 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 以下是使用Mermaid语法绘制的 `SeleniumHelper`类功能结构图,直观展示其核心功能和模块关系: ```mermaid classDiagram class SeleniumHelper { -driver: WebDriver -output_base: str -session_file: str -current_step: str +__init__(driver=None, output_base="output", session_file="session.pkl") +_init_dirs() +_get_step_dir() str +_get_log_path() str <> +create_driver(browser_type="chrome", options=None, **kwargs) WebDriver +init_driver(browser_type="chrome", **kwargs) WebDriver <> +set_step(step_name: str) SeleniumHelper +step_print(*args, **kwargs) <> +take_snapshot(prefix="step") (str, str) +log_exception(exception: Exception, context="") dict <> +find_element(by, value, timeout=5, parent=None, context="") WebElement|None +click_safe(element_or_locator, timeout=5) bool <> +save_session() bool +resume_session() bool <> +cleanup() +close() <> +__enter__() SeleniumHelper +__exit__(exc_type, exc_val, exc_tb) } class webdriver-manager { +ChromeDriverManager().install() +GeckoDriverManager().install() } class ExternalDependencies { +selenium.webdriver +selenium.common.exceptions +logging +os/pickle/traceback } SeleniumHelper --> webdriver-manager : 自动下载驱动 SeleniumHelper --> ExternalDependencies : 依赖功能 SeleniumHelper --> ManagedHelper : 快捷入口 class ManagedHelper { +create_helper() +managed_helper() } note for SeleniumHelper """核心功能模块: 1. 自动驱动管理(无需手动下载) 2. 步骤化日志和截图(按步骤分类存储) 3. 异常处理系统(自动记录上下文) 4. 会话持久化(支持断点续爬) 5. 安全元素操作(自动重试和异常捕获)""" ``` ### 图表说明: 1. **核心类**:`SeleniumHelper` 包含5个主要功能模块 2. **依赖关系**: - 通过 `webdriver-manager`自动管理浏览器驱动 - 依赖标准库和Selenium原生功能 3. **快捷入口**:提供 `create_helper()`和 `managed_helper()`快速启动 4. **特色功能**: - 自动化的驱动管理(红框突出) - 结构化的步骤管理(蓝框标注) - 完善的异常处理流程(黄框标记) ### 可视化建议: 1. 用不同颜色区分功能模块 2. 实线箭头表示强依赖,虚线箭头表示弱依赖 3. 注释框说明核心价值点 ### 开发: 1. 安装推荐的插件 2. 使用 `cell` 来新建一个单元格,就可以进行开发了。 ![cell调试预览](example/image.png) 这个设计实现了「开箱即用」的自动化测试/爬虫解决方案,尤其适合需要长期运行的复杂场景。