news 2026/9/13 15:31:35

SeleniumBase 快速上手:5 分钟搭建浏览器自动化与反检测测试的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SeleniumBase 快速上手:5 分钟搭建浏览器自动化与反检测测试的完整指南

SeleniumBase 快速上手:5 分钟搭建浏览器自动化与反检测测试的完整指南

【免费下载链接】SeleniumBaseAPIs for browser automation, testing, and bypassing bot-detection. Includes CDP Mode: A stealthy configuration for chromium that passes every bot detection test.项目地址: https://gitcode.com/GitHub_Trending/se/SeleniumBase

SeleniumBase 是一个 Python 浏览器自动化框架:网页端到端测试、爬虫抓取、绕过反机器人检测(bot-detection)一套搞定。装好之后,你只需几行代码,就能驱动真实浏览器完成打开、点击、输入和断言。

一句话定位:它是什么

SeleniumBase 把 Selenium、pytest 和隐身浏览器封装进同一个包,给你三类现成的能力:

  • 你要写端到端测试 →BaseCase自带等待、断言和截图,测试代码只剩"做什么"。
  • 你要爬数据或做自动化脚本 →SB上下文管理器几行代码就能跑,不用写任何配置。
  • 你的脚本总被网站识别成机器人 → CDP Mode 用隐身配置启动 Chromium,可通过主流反检测检测站。

五分钟上手:安装与最小配置

🚀 你只需执行一条命令完成安装:

pip install seleniumbase

不需要WebDriver 手动管理——首次运行时它会按浏览器版本自动下载匹配的驱动。零配置即可开跑,下面这个文件就是你全部需要的"最小配置":

from seleniumbase import BaseCase BaseCase.main(__name__, __file__) # 允许直接用 python 运行 class LoginTest(BaseCase): def test_login(self): self.goto("https://www.saucedemo.com") self.type("#user-name", "standard_user") self.type("#password", "secret_sauce\n") # \n 自动提交 self.assert_element("div.inventory_list")

运行pytest test_login.py -v(或直接python test_login.py),看到 PASSED 就算跑通了。注意type()会自动等待元素可见、清空旧内容再输入,你不用手写time.sleep

实战:从零搭一个电商登录自动化测试

以开源演示商城 saucedemo 为例,一步步把"登录 → 进商品页 → 退出"这条流程搭出来。

第 1 步:打开登录页并填表单。就是上面最小文件里的goto+ 两次type。跑完后浏览器停在商品列表页,assert_element("div.inventory_list")确认你已经登录成功。

第 2 步:验证页面内容并退出。加几行断言,让测试真正"有意义":

self.assert_exact_text("Products", "span.title") self.click('button[name*="backpack"]') self.assert_exact_text("Your Cart", "span.title") self.js_click("a#logout_sidebar_link") self.assert_element("div#login_button_container")

做完之后,这条测试覆盖了"登录、加购、看购物车、登出"四个状态。仓库里有一份完整成品可以参考:examples/test_login.py,它就是这个流程的完整版。

第 3 步:加个演示模式。运行pytest test_login.py --demo_mode,每一步操作会在浏览器里高亮并放慢,方便给别人演示测试在干什么。

第 4 步:切换到隐身模式跑登录。如果目标网站有反检测,把驱动换成 CDP Mode(一种用 Chromium 开发者协议直接启动隐身浏览器的模式),其余 API 基本不变:

from seleniumbase import sb_cdp sb = sb_cdp.Chrome() sb.goto("https://seleniumbase.io/simple/login") sb.type("#username", "demo_user") sb.type("#password", "secret_pass") sb.click('a:contains("Sign in")') sb.assert_exact_text("Welcome!", "h1") sb.quit()

直接python运行即可,登录、断言、关浏览器一气呵成,且能顺利通过主流 bot 检测站。更多 CDP 写法见 examples/cdp_mode/。

个性化:主题与样式

框架的行为细节(等待时长、窗口大小、无头模式分辨率)都集中在一个设置文件里,你复制一份再改,运行时用--settings指过去即可:

# custom_settings.py MINI_TIMEOUT = 2 # 短等待(秒) SMALL_TIMEOUT = 7 # 常规等待 LARGE_TIMEOUT = 10 # 长等待 HEADLESS_START_WIDTH = 1440 # 无头窗口宽度 SCREENSHOT_WITH_BACKGROUND = True
pytest test_login.py --settings=custom_settings.py

命令行还能临时改"外观":--user-agent换 UA、--mobile模拟手机、--ad_block屏蔽广告、--start-maximized全屏打开。完整开关清单在 help_docs/customizing_test_runs.md,默认值的出处是 examples/custom_settings.py。

常见坑与 FAQ

⚠️ 新手最容易在这四处卡住:

  1. 驱动下载失败 / 版本对不上。SeleniumBase 会自动匹配驱动,网络不通时会报错。解法:换网络后手动执行python -m sbase get chromedriver预下载,或pip install -U seleniumbase升级到最新版(驱动匹配规则会持续更新)。
  2. 提示"测试必须在 pytest 下运行"。BaseCase的测试文件加一行BaseCase.main(__name__, __file__),就能用python 文件名.py直接跑。
  3. 元素找不到、测试时过时不过。SeleniumBase 的方法默认会自动等待,多数"时好时坏"是选择器写错了。解法:按 F12 在开发者工具里核对 CSS 选择器;页面确实慢就加timeout参数或在 custom_settings.py 里调大等待值。
  4. 网站把你的脚本识别为机器人。普通模式下换 UA 不一定够。解法:给 pytest 加--uc开启 UC Mode,或直接用上面的sb_cdp.Chrome(),两者文档见 help_docs/uc_mode.md 和 help_docs/cdp_mode_methods.md。

深入指南与下一步

文档入口都放在 help_docs/,建议按下面三个方向挑一个继续:

  • 反检测进阶:读 help_docs/cdp_mode_methods.md,跑通 examples/cdp_mode/ 里的检测站示例,让你的爬虫和测试在严格站点上也能稳定运行。
  • 更快写测试:用 Recorder 模式(help_docs/recorder_mode.md)边点网页边生成代码,再用 GUI Commander(help_docs/commander.md)批量管理用例。
  • 可视化回归:参考 examples/visual_testing/,给关键页面截图比对,页面一改版测试就变红。

控制台命令入口在 sbase/,常用方法速查在 help_docs/method_summary.md。把上面 5 分钟的最小测试改成你自己网站的登录页,就是下一步。🔍

【免费下载链接】SeleniumBaseAPIs for browser automation, testing, and bypassing bot-detection. Includes CDP Mode: A stealthy configuration for chromium that passes every bot detection test.项目地址: https://gitcode.com/GitHub_Trending/se/SeleniumBase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 15:26:11

YOLOv5草莓目标检测实战:数据预处理、模型训练与调优指南

简介:这是一份基于YOLOv5的草莓目标检测项目,源自猛犸杯比赛赛题,面向目标检测初学者、计算机相关专业学生及竞赛参与者。项目包括可直接运行的Python源码与训练脚本、主办方提供的草莓图像数据集(几百张)及对应XML标注…

作者头像 李华
网站建设 2026/9/13 15:26:01

魔方HR系统源码解析:ASP.NET Web Forms架构与安全实践

简介:这是一份面向ASP.NET初中级开发者与HR系统学习者的完整实例源码,基于.NET Framework实现人力资源业务全流程管理。源码覆盖员工、招聘、培训、绩效、薪资福利、报表分析等模块,清晰分层表现层、业务逻辑层与数据访问层,适合用…

作者头像 李华
网站建设 2026/9/13 15:25:11

CX9020中文字体配置全指南:Windows CE 6.0字体子集化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华