A Go client library for remotely controlling Chrome/Chromium browsers via the Chrome DevTools Protocol.
godet is a Go client library for the Chrome DevTools Protocol that allows developers to remotely control Chrome and Chromium browsers. It provides programmatic access to browser features like tab management, JavaScript execution, network monitoring, and screenshot capture from Go applications.
Go developers who need to automate browser interactions for testing, scraping, or monitoring purposes, and those building tools that require remote browser control.
godet offers a clean, idiomatic Go interface to the Chrome DevTools Protocol, eliminating the need to work directly with the raw protocol and making browser automation more accessible to Go developers.
Remote client for Chrome DevTools
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a clean, Go-friendly API that abstracts the Chrome DevTools Protocol, reducing the need for developers to understand raw protocol details, as emphasized in its philosophy.
Supports subscribing to various DevTools events like network requests and console logs through a callback system, enabling real-time monitoring and automation, as shown in the example code.
Allows evaluating JavaScript code in browser contexts and capturing return values using EvaluateWrap, essential for interacting with dynamic web content.
Includes functions for taking screenshots, generating PDFs, and blocking URLs, demonstrated in the example for common automation tasks.
Users must start Chrome or Chromium with remote debugging enabled (e.g., on localhost:9222), adding complexity compared to libraries that launch browsers automatically.
Relies primarily on GoDoc with few tutorials; the provided example is basic, which may hinder quick adoption and advanced usage.
Tightly coupled with the Chrome DevTools Protocol, so updates to Chrome could introduce breaking changes without timely library updates, risking instability.
Focuses on low-level protocol access, lacking built-in utilities for common tasks like waiting for page loads or handling authentication, requiring custom implementation.