Repolode
stevepryde

stevepryde/thirtyfour

用于 Rust 的 Selenium WebDriver 客户端库,用于编写网站自动化 UI 测试。

Star
1,443
Fork
102
未关闭 Issue
1
最近提交
17天前

这是什么?

thirtyfour 是一个 Rust 语言的 Selenium / WebDriver 客户端,用于网站的端到端 UI 自动化测试。它既可以通过 chromedriver 等驱动直接启动浏览器会话,也可以连接 Selenium Standalone 或 Grid。

库覆盖了常用的 WebDriver 能力:支持通过 test ID、id、class、CSS、标签和 XPath 等方式查找元素,可发送按键组合、执行 JavaScript、使用动作链,并能管理 Cookie、切换 frame / 窗口 / 弹窗、访问 Shadow DOM,以及保存 PNG 截图。查询接口支持显式等待和条件判断,组件封装则便于以 Page Object 的方式组织测试代码。内置的测试运行器会在出错或 panic 时尝试异步清理浏览器资源。

可选的 feature 还提供类型化的 Chrome DevTools Protocol 命令、基于 WebSocket 的 CDP 事件订阅,以及跨浏览器的 WebDriver BiDi 支持。项目采用 MIT 或 Apache 2.0 双许可,要求 Rust 1.88 及以上版本。

核心功能

  • 01支持全部 W3C WebDriver 和 WebElement 方法。
  • 02可通过 test ID、id、class、CSS、标签和 XPath 查找元素。
  • 03提供带显式等待的查询接口和用于 Page Object 的组件封装。
  • 04提供类型化的 Chrome DevTools Protocol 命令,并可选择订阅 CDP 事件。
  • 05通过可选 feature 支持跨浏览器的 WebDriver BiDi。
  • 06可将整个浏览器或单个元素截图保存为 PNG。

适用场景

  • 使用 Rust 编写 Web 应用的端到端 UI 测试。
  • 将已有的 Selenium 自动化脚本迁移到 Rust 项目中。
  • 需要类型化访问 Chrome DevTools 功能的浏览器自动化任务。

快速上手

  1. 1

    将 thirtyfour 添加为 Rust 项目的依赖(cargo add thirtyfour)

  2. 2

    启动 chromedriver 等 WebDriver 服务,然后运行异步示例

    cargo run --example tokio_async

使用前须知

  • 运行测试需要先启动 chromedriver 等 WebDriver 服务或浏览器驱动。
  • 元数据中的许可证显示为 NOASSERTION,但 README 说明为 MIT 或 Apache 2.0 双重许可。

收录于专题

标签

常见问题

thirtyfour 是什么?
用于 Rust 的 Selenium WebDriver 客户端库,用于编写网站自动化 UI 测试。 thirtyfour 是一个 Rust 语言的 Selenium / WebDriver 客户端,用于网站的端到端 UI 自动化测试。它既可以通过 chromedriver 等驱动直接启动浏览器会话,也可以连接 Selenium Standalone 或 Grid。
thirtyfour 可以免费使用吗?用的什么许可证?
thirtyfour 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
thirtyfour 还在维护吗?
活跃维护中。thirtyfour 最近一次提交是在 2026年10月21日。
thirtyfour 适合用来做什么?
使用 Rust 编写 Web 应用的端到端 UI 测试。 将已有的 Selenium 自动化脚本迁移到 Rust 项目中。 需要类型化访问 Chrome DevTools 功能的浏览器自动化任务。
thirtyfour 怎么安装和运行?
将 thirtyfour 添加为 Rust 项目的依赖(cargo add thirtyfour) 启动 chromedriver 等 WebDriver 服务,然后运行异步示例: cargo run --example tokio_async
在哪里获取 thirtyfour?
源代码和安装说明在 GitHub 上:https://github.com/stevepryde/thirtyfour

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目