seleniumbase/SeleniumBase:1.1k Star 开源神器,集自动化、测试与反 Bot 侦测于一体的 Python 库

告别繁琐配置,一站式解决 Web 自动化所有难题
项目地址: https://github.com/seleniumbase/SeleniumBase
SeleniumBase 是一个功能全面的 Python 库,专为简化 Web 自动化流程而设计。它不仅可以用于网站测试,还能高效地进行网页抓取、任务自动化,并具备绕过反 Bot 侦测的强大能力。
该项目旨在提供一套完整的工具,减少开发者在 Web 自动化过程中对各种库的依赖和繁琐配置。
SeleniumBase 的主要特点和功能包括:
- 一体化框架:集成了 Selenium/WebDriver API、pytest、pynose 和 behave 等测试运行器,提供结构化的测试体验。
- 自动驱动管理:能够自动管理和版本控制 Web 驱动,省去手动配置的麻烦。
- 智能选择器:自动识别 CSS 选择器和 XPath,简化元素定位。
- 强大的 API:提供简洁的 API,例如
self.type(selector, text)
,将多个操作合为一步,减少代码量。 - 内置等待机制:自动等待页面元素加载完成,告别
time.sleep()
,避免测试不稳定性。 - 丰富的报告和仪表盘:生成详细的测试报告和实时仪表盘,方便监控测试状态。
- 多种实用工具:内置 GUI 应用、测试用例管理、代码生成器等,提升开发效率。
SeleniumBase 的架构设计使其能够无缝集成到各种 CI/CD 平台,如 GitHub Actions、Jenkins、Azure 和 Google Cloud。这意味着您可以轻松地将自动化测试纳入您的持续集成流程中,从而确保代码质量并加速发布周期。
该项目支持多种测试风格,包括:
- BaseCase 类继承(兼容 pytest 和 pynose)。
- SB 上下文管理器(纯 Python)。
- Driver 管理器(纯 Python)。
以下是一些使用 SeleniumBase 的代码示例:
- Google 搜索示例:
from seleniumbase import SB
with SB(test=True, uc=True) as sb:
sb.open("https://google.com/ncr")
sb.type('[title="Search"]', "SeleniumBase GitHub page\n")
sb.click('[href*="github.com/seleniumbase/"]')
sb.save_screenshot_to_logs()
print(sb.get_page_title())

- 绕过 Cloudflare 验证示例:
from seleniumbase import SB
with SB(uc=True, test=True, locale="en") as sb:
url = "https://gitlab.com/users/sign_in"
sb.activate_cdp_mode(url)
sb.uc_gui_click_captcha()
sb.sleep(2)


- 电商网站测试示例:
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"]')
self.click("#shopping_cart_container a")
self.assert_text("Backpack", "div.cart_item")
self.click("button#checkout")
self.type("input#first-name", "SeleniumBase")
self.type("input#last-name", "Automation")
self.type("input#postal-code", "77123")
self.click("input#continue")
self.click("button#finish")
self.assert_text("Thank you for your order!")

SeleniumBase 支持以下平台:
- 操作系统:Linux/Ubuntu, macOS, Windows
- 浏览器:Chrome, Edge, Firefox, Safari
SeleniumBase 通过提供统一的框架,解决了传统 Selenium 使用中遇到的各种痛点,如驱动管理、元素等待和报告生成等。 无论是小型项目还是大型企业级应用,SeleniumBase 都能显著提升 Web 自动化效率和代码质量。
怎么样,看完这个项目是不是觉得很棒? 这个项目对于 Web 自动化工程师和测试人员来说非常有用! 快来转发给你的朋友们一起学习使用吧!