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

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())
Google 搜索示例
  • 绕过 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 自动化工程师和测试人员来说非常有用! 快来转发给你的朋友们一起学习使用吧!

Read more

33.5k Star开源神器:让Python依赖管理从此轻松!

33.5k Star开源神器:让Python依赖管理从此轻松!

告别繁琐,Poetry以优雅的方式管理你的Python项目依赖 项目地址: https://github.com/python-poetry/poetry Poetry 是一款用于声明、管理和安装 Python 项目依赖的工具,它可以确保你在任何地方都拥有正确的堆栈。它旨在取代传统的 setup.py、requirements.txt、setup.cfg、MANIFEST.in 和 Pipfile,取而代之的是一个简单的基于 pyproject.toml 的项目格式。 Poetry 解决了什么痛点? * 依赖管理复杂: 传统方式需要手动维护多个文件,容易出错且难以管理。Poetry 将所有依赖信息集中在 pyproject.toml 文件中,方便管理和维护。 * 版本冲突: 不同的项目可能依赖于相同库的不同版本,容易导致冲突。Poetry 可以自动解决版本冲突,确保项目依赖的稳定性。 * 环境一致性: 在不同的开发环境和部署环境之间保持依赖一致性是一个挑战。Poetry 通过锁定依赖版本,

By majichen
1.9k Star开源神器,让你的安卓手机化身荒野求生利器!

1.9k Star开源神器,让你的安卓手机化身荒野求生利器!

无需网络,功能强大!这款开源 Android 应用助你在野外安全无忧 项目地址: https://github.com/kylecorry31/Trail-Sense Trail Sense 是一款强大的开源 Android 应用,旨在利用你手机的传感器来辅助你在野外徒步旅行或应对生存场景。 最重要的是,它完全设计为离线使用,无需担心网络连接问题! 这款应用的功能非常丰富,可以满足你在野外环境中的各种需求: * 导航定位: 你可以设置信标并导航到它们,跟随路径,甚至可以使用照片作为地图。 * 安全保障: 通过回溯功能,你可以轻松地原路返回,避免迷路。日落警报功能可以提前提醒你日落时间,让你有足够的时间准备。 * 生存辅助: 应用内置手电筒功能,方便你在黑暗环境中照明。此外,还可以预测天气,帮助你做好应对准备。 Trail Sense 的主要特点: * 完全离线使用: 无需网络连接,所有功能均可使用。 * 功能丰富: 涵盖导航、安全、生存等多个方面,满足你在野外环境中的各种需求。 * 利用手机传感器:

By majichen
9.6k Star开源神器:让你的Mac状态栏更强大!

9.6k Star开源神器:让你的Mac状态栏更强大!

告别简陋,Eul让你的macOS状态栏焕发新生,实时掌控系统状态! 项目地址: https://github.com/gao-sun/eul Eul 是一款用 SwiftUI 编写的 macOS 状态栏应用,旨在提供简洁美观的系统监控信息展示。它完美兼容 Dark Mode,并为 macOS Big Sur 提供了开箱即用的精美小组件。如果你厌倦了 macOS 原生状态栏的简陋和信息匮乏,Eul 绝对能满足你对美观和实用性的双重追求。 Eul 的亮点: * 深色模式兼容: 无缝适配 macOS 的深色模式,保证视觉体验的一致性。 * Big Sur 小组件: 为 macOS Big Sur 专门设计的小组件,与系统风格完美融合。 * 蓝牙电池电量: 实时显示蓝牙设备的电池电量,再也不用担心设备突然没电了。 * SwiftUI 编写:

By majichen
42.6k Star开源神器,eDEX-UI,打造你的科幻终端

42.6k Star开源神器,eDEX-UI,打造你的科幻终端

体验未来科技感:一款炫酷的跨平台终端模拟器与系统监控器 项目地址: https://github.com/GitSquared/edex-ui eDEX-UI 是一款全屏、跨平台的终端模拟器和系统监控器,其外观和感觉就像一个科幻电影中的电脑界面。 深受电影《创:战纪》(TRON Legacy) 的视觉效果启发,特别是董事会议那段场景,eDEX-UI 项目最初的目标是做一个 “DEX-UI”,但减少一些“艺术性”,增加更多“可分发的软件”的特性。 在保持未来感的同时,eDEX-UI 努力维持一定程度的实用性,使其能够在现实场景中使用,更大的目标是将科幻用户体验带入主流。 它可能只是一个被认真对待的玩笑。 主要特点: * 全功能终端模拟器: 支持选项卡、颜色、鼠标事件,以及 curses 和类 curses 的应用程序。 * 实时系统监控: 监控 CPU、内存、交换空间、进程以及网络 (GeoIP、

By majichen