Skip to content

mkenney/go-chrome

go-chrome

BSD-2-Clause Release Candidate Build status Coverage status Github issues Github pull requests GoDoc

This package aims to be a complete Chrome DevTools Protocol implementation. The primary use-case behind this project is interacting with headless Google Chrome in a container environment, but it should be appropriate for developing server side and desktop applications for any browser that supports the devtools protocol.

The API is fairly settled and basic code-coverage tests have been implemented but real-world testing is needed. Page.captureScreenshot and related calls are working well and are regularly used for validating the viability of code changes.

This implementation is based on the Tip-of-Tree documentation and may be prone to change. At some point stable versions will be implemented as well, hopefully beginning with v1.3.

Documentation and Examples

There are a few small examples of how to use the framework API on the wiki and in the /_examples directory. Additional documentation is available on the wiki as well.

TODO

Contributions of any kind are very welcome!

  • Resolve race condition issues. Any assistance is appreciated!

  • Add framework API examples to the /_examples directory and wiki to showcase various ways people are using the package.

    Any example scripts showing various ways people are using the framework would be outstanding! The screenshot script and several others are available there.

  • Refactoring to implement standard interfaces where applicable and review current use of interfaces in the API. Some aren't needed at all and others are used to support test mocks.

  • Add more tests, particularly for error cases.

  • Add integrated tests to stablize package interactions raised in various issues.

If you would like to contribute but aren't sure how, take a look at the issue tracker. Issues are labeled as bug reports, feature requests, feedback requests, help wanted, etc.

There are also always tests that could be written. There are many examples of tests in the package.

All notable changes to this project are documented in the CHANGELOG. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.