go-rod / rod
A Chrome DevTools Protocol driver for web automation and scraping.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing go-rod/rod in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Summary (README)
PreviewOverview
Documentation | API reference | FAQ
Rod is a high-level driver directly based on DevTools Protocol. It's designed for web automation and scraping for both high-level and low-level use, senior developers can use the low-level packages and functions to easily customize or build up their own version of Rod, the high-level functions are just examples to build a default version of Rod.
Features
- Chained context design, intuitive to timeout or cancel the long-running task
- Auto-wait elements to be ready
- Debugging friendly, auto input tracing, remote monitoring headless browser
- Thread-safe for all operations
- Automatically find or download browser
- High-level helpers like WaitStable, WaitRequestIdle, HijackRequests, WaitDownload, etc
- Two-step WaitEvent design, never miss an event (how it works)
- Correctly handles nested iframes or shadow DOMs
- No zombie browser process after the crash (how it works)
- CI enforced 100% test coverage
Examples
Please check the examples_test.go file first, then check the examples folder.
For more detailed examples, please search the unit tests.
Such as the usage of method HandleAuth, you can search all the *_test.go files that contain HandleAuth,
for example, use GitHub online search in repository.
You can also search the GitHub issues or discussions,
a lot of usage examples are recorded there.
Here is a comparison of the examples between rod and Chromedp.
If you have questions, please raise an issues/discussions or join the chat room.
Sponsors
Rod is sponsored by many organizations and individuals, thank you for your support!
Please contact yad@ysmood.org if you want to be listed here.
<!-- markdownlint-disable MD033 --> <table style="border-collapse: collapse"> <tr> <td> <p>Browser testing via</p> <a href="https://www.testmuai.com/?utm_medium=sponsor&utm_source=go-rod" target="_blank"> <img src="https://github.com/user-attachments/assets/3efebe85-726b-49f1-b4c9-7c0103b192f3" alt="TestMu AI Logo" height="90" /> </a> </td> </tr> </table> <!-- markdownlint-enable MD033 -->Join us
Your help is more than welcome! Even just open an issue to ask a question may greatly help others.
Please read How To Ask Questions The Smart Way before you ask questions.
If you want to contribute please read the Contributor Guide.