Write a Go program to scrape data from a JavaScript-rendered website that requires a real browser to load content
Build end-to-end browser tests in Go that click buttons, fill forms, and assert page content without a separate testing framework
Take automated screenshots of web pages as part of a CI pipeline using Rod's screenshot helpers
Intercept and mock HTTP responses during automated browser tests to isolate frontend behavior
Requires Chrome or Chromium installed on the machine, Rod downloads a compatible version automatically if none is found.
Rod is a Go library for controlling a Chrome browser programmatically. It is built directly on the Chrome DevTools Protocol, which is the same low-level interface that powers Chrome's built-in developer tools. Rod uses it to automate a browser for tasks like web scraping, end-to-end testing, taking screenshots, or any workflow that involves loading and interacting with web pages without a human at the keyboard. The library is aimed at Go developers who need browser automation at either a high or low level. High-level helpers handle common tasks: waiting for an element to appear before interacting with it, detecting when a page has stopped making network requests, intercepting HTTP traffic, and managing file downloads. For developers who need more control, the lower-level packages used internally are also accessible directly. A few design points stand out in the README. Rod uses Go's standard context system for timeouts and cancellation, so you can attach a deadline to any browser operation and it will stop cleanly when time runs out. All operations are thread-safe. Elements are automatically waited on before interaction, which reduces the kind of timing failures common in browser automation. If a browser process crashes, Rod is designed not to leave behind orphaned browser processes. The README points to an examples file in the repository and to the GitHub issues and discussions as the primary places to find usage patterns. Rod is compared in the documentation to Chromedp, another Go browser automation library, with a side-by-side example. A Discord community is available for questions and support.
← go-rod on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.