A comprehensive Python wrapper and execution manager for Chrome/Chromium using the Chrome Debugging Protocol.
ChromeController is a Python library that wraps the Chrome Debugging Protocol to control Chrome or Chromium browsers programmatically. It solves the problem of automating browser interactions, extracting rendered web content, and managing browser processes entirely from Python, avoiding the need for JavaScript-based automation tools.
Python developers who need to automate Chrome/Chromium for web scraping, testing, or debugging purposes, especially those who prefer Python over JavaScript for automation scripts.
Developers choose ChromeController because it provides a complete, Python-native interface to Chrome's debugging capabilities, with automatic protocol updates, process management, and a higher-level API that simplifies complex browser automation tasks.
Comprehensive wrapper and execution manager for the Chrome browser using the Chrome Debugging Protocol.
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 full access to the Chrome Debugging Protocol with automatically generated Python wrappers, ensuring up-to-date functionality as mentioned in the README's philosophy section.
Offers a Pythonic interface that avoids JavaScript, using Python's logging framework and http.cookiejar for cookie management, as demonstrated in the quickstart code examples.
Includes a command-line interface for fetching JavaScript-rendered content, acting as an enhanced curl alternative for scraping dynamic pages, detailed in the usage section.
Uses automatic code generation by parsing Chrome's protocol.json files, keeping the library synchronized with browser changes without manual updates, as highlighted in the README.
Tests are currently broken due to an upstream Chromium bug, as noted in the README, indicating reliance on external fixes and potential unreliability in automated testing scenarios.
Multiple tabs are not thread-safe, as admitted in the README, restricting concurrent operations and scalability for parallel tasks.
Highly sensitive to Python implementation details, likely broken on versions >3.8 or <3.5, reducing compatibility and future-proofing, as cautioned in the README.
Compound type arguments (arrays or objects) are not validated due to complexity in AST manipulation, leaving room for runtime errors, as explained in the documentation section.