Repolode
mxschmitt

mxschmitt/playwright-go

基于 Playwright 的 Go 浏览器自动化库,用统一 API 控制 Chromium、Firefox 和 WebKit。

可替代:Selenium

Star
3,539
Fork
250
未关闭 Issue
5
最近提交
前天

这是什么?

playwright-go 将 Playwright 浏览器自动化 API 引入 Go 语言。Go 程序可以启动 Chromium、Firefox 和 WebKit,完成页面导航、元素交互和结果读取。三种浏览器引擎在 Linux、macOS 和 Windows 上使用同一套 API,支持无头和有头两种模式。

库在后台运行 Playwright 驱动,并通过 stdio 与其通信,浏览器相关逻辑与官方 Node.js 实现保持一致。驱动和浏览器可通过 `playwright install` 命令安装,也可在代码中调用 `playwright.Install()`。每个次版本的库都对应特定版本的驱动。

API 涵盖按角色、标签、文本或测试 ID 定位元素的 locator、自动等待的操作、可保存登录状态的独立浏览器上下文、Trace 录制、网络拦截与模拟,以及设备、地理位置模拟、文件上传下载、PDF 生成和视频录制。

核心功能

  • 01Chromium、Firefox 和 WebKit 共用一套 API,覆盖 Linux、macOS 和 Windows。
  • 02支持按角色、标签、文本定位元素,避免脆弱的 CSS 路径。
  • 03操作自动等待,断言会重试直到条件满足。
  • 04浏览器上下文相互隔离,登录状态可保存后复用。
  • 05支持 Trace 录制、请求拦截与模拟。
  • 06支持设备、地理位置、语言和时区模拟。

适用场景

  • 为 Go 编写的 Web 应用做端到端测试。
  • 抓取需要 JavaScript 渲染的动态页面。
  • 在 Go 服务中生成网页的 PDF 或截图。
  • 在 Go 工具中自动化重复的浏览器操作流程。

快速上手

  1. 1

    将 Go 库添加到你的模块中

    go get -u github.com/mxschmitt/playwright-go
  2. 2

    安装 Playwright 驱动和浏览器(包括系统依赖)

    go run github.com/mxschmitt/playwright-go/cmd/playwright@v0.xxxx.x install --with-deps

使用前须知

  • 每次次要版本升级都需要匹配的 Playwright 驱动版本,安装版本必须与 go.mod 一致。
  • 如果使用 playwright.Install() 且没有权限,需要手动安装操作系统的浏览器依赖。

收录于专题

标签

常见问题

playwright-go 是什么?
基于 Playwright 的 Go 浏览器自动化库,用统一 API 控制 Chromium、Firefox 和 WebKit。 playwright-go 将 Playwright 浏览器自动化 API 引入 Go 语言。Go 程序可以启动 Chromium、Firefox 和 WebKit,完成页面导航、元素交互和结果读取。三种浏览器引擎在 Linux、macOS 和 Windows 上使用同一套 API,支持无头和有头两种模式。
playwright-go 可以免费使用吗?用的什么许可证?
playwright-go 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
playwright-go 还在维护吗?
活跃维护中。playwright-go 最近一次提交是在 2026年11月5日。
playwright-go 适合用来做什么?
为 Go 编写的 Web 应用做端到端测试。 抓取需要 JavaScript 渲染的动态页面。 在 Go 服务中生成网页的 PDF 或截图。 在 Go 工具中自动化重复的浏览器操作流程。
playwright-go 怎么安装和运行?
将 Go 库添加到你的模块中: go get -u github.com/mxschmitt/playwright-go 安装 Playwright 驱动和浏览器(包括系统依赖): go run github.com/mxschmitt/playwright-go/cmd/playwright@v0.xxxx.x install --with-deps
在哪里获取 playwright-go?
源代码和安装说明在 GitHub 上:https://github.com/mxschmitt/playwright-go

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

相关项目