SeleniumBase:一站式浏览器自动化框架

SeleniumBase:一站式浏览器自动化框架

SeleniumBase 是一个基于 Python 的浏览器自动化框架,目前在 GitHub 上收获了 12,764 个 Star。它的定位很直接:把 Web 测试、爬虫、数据抓取和反检测自动化这几件事,用一套工具包圆。

正文顶部截图

核心能力:不只做测试

很多做前端测试的同学对 Selenium 不陌生。SeleniumBase 在 Selenium/WebDriver 之上做了大量封装,把原本需要多行代码的操作压缩成单条命令。比如 self.type("input", "text\n") 这一行,内部已经处理了等待元素可见、清空输入框、填入文本、触发提交这一系列动作。

但它的能力圈远不止测试。项目 README 列出的四个方向分别是 Web Crawling、Testing、Scraping 和 Stealth。其中最值得关注的是 Stealth 相关的能力。

Stealth 模式:绕过反爬虫检测

SeleniumBase 的 CDP Mode(Chrome DevTools Protocol)专门用来解决一个头疼的问题:网站如何识别出你在用自动化工具。

常规的 Selenium 启动浏览器时,会留下很多可被检测的特征。CDP Mode 通过直接操控 Chromium 的 DevTools 协议,把这些痕迹清理掉。项目文档里提供了一个测试案例,用 sb_cdp.Chrome() 启动浏览器后访问 browserscan.net 的 bot 检测页面,所有检测项全部通过。

除了纯 CDP 模式,项目还支持 Stealthy Playwright Mode。这个模式下,Playwright 连接到 SeleniumBase 启动的 stealth 浏览器会话,既保留了 Playwright 的 API,又获得了反检测能力。

README区域截图

测试体验:pytest 原生集成

对于测试场景,SeleniumBase 和 pytest 的结合做得比较自然。项目自带 150 多个可直接运行的示例,覆盖了电商网站测试、表单填写、元素断言等常见场景。

一个典型的测试脚本长这样:

from seleniumbase import BaseCase
BaseCase.main(__name__, __file__)

class MyTestClass(BaseCase):
    def test_swag_labs(self):
        self.open("https://www.saucedemo.com")
        self.type("#user-name", "standard_user")
        self.type("#password", "secret_sauce\n")
        self.assert_element("div.inventory_list")
        self.click('button[name*="backpack"]')

SeleniumBase 的方法设计了一个重要特性:自动等待。调用 click()type() 时,框架会先等待目标元素加载完成,而不是像原生 Selenium 那样立刻抛异常。这对于减少 flaky test 很有效。

命令行参数也支持得比较全面。可以指定浏览器类型(Chrome、Edge、Brave、Chromium)、是否 headless、是否开启 demo 模式(会高亮操作步骤并放慢速度)、是否生成 HTML 报告等。

生态和兼容性

安装方式很简单,pip install seleniumbase 即可。框架本身用 MIT 协议开源。

浏览器支持覆盖 Chrome、Edge、Firefox 和 Safari,操作系统支持 Linux、macOS 和 Windows。CI/CD 方面也提供了 GitHub Actions、Jenkins、Azure Pipelines 的集成示例。

项目还内置了一些额外工具,比如自动下载匹配的 WebDriver 版本、Dashboard 测试看板、截图和日志保存、验证码处理 solve_captcha() 等。测试报告支持 pytest HTML、pynose、behave 和 Allure 多种格式。

适合谁用

如果你在做 Web 自动化测试,且受够了原生 Selenium 的样板代码和 flaky 问题,SeleniumBase 的封装能省不少事。如果你在写爬虫或数据采集脚本,且目标网站有反爬机制,CDP Mode 的 stealth 能力值得尝试。项目文档比较完整,示例也多,上手成本不高。

posted @ 2026-06-21 10:52  小飞技术快餐  阅读(3)  评论(0)    收藏  举报