chromedp

A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol.

Github stars Tracking Chart

About chromedp GoDoc

Package chromedp is a faster, simpler way to drive browsers supporting the
Chrome DevTools Protocol in Go without external dependencies (like
Selenium or PhantomJS).

Installing

Install in the usual Go way:

go get -u github.com/chromedp/chromedp

Examples

Refer to the GoDoc page for the documentation and examples. Additionally,
the examples repository contains more complex examples.

Frequently Asked Questions

I can't see any Chrome browser window

By default, Chrome is run in headless mode. See DefaultExecAllocatorOptions, and
an example
to override the default options.

I'm seeing "context canceled" errors

When the connection to the browser is lost, chromedp cancels the context, and
it may result in this error. This occurs, for example, if the browser is closed
manually, or if the browser process has been killed or otherwise terminated.

Chrome exits as soon as my Go program finishes

On Linux, chromedp is configured to avoid leaking resources by force-killing
any started Chrome child processes. If you need to launch a long-running Chrome
instance, manually start Chrome and connect using RemoteAllocator.

Executing an action without Run results in "invalid context"

By default, a chromedp context does not have an executor, however one can be
specified manually if necessary; see issue #326
for an example.

I can't use an Action with Run because it returns many values

Wrap it with an ActionFunc:

chromedp.Run(ctx, chromedp.ActionFunc(func(ctx context.Context) error {
	_, err := domain.SomeAction().Do(ctx)
	return err
}))

I want to use chromedp on a headless environment

The simplest way is to run the Go program that uses chromedp inside the
chromedp/headless-shell image. That image contains headless-shell, a
smaller headless build of Chrome, which chromedp is able to find out of the
box.

Resources

Main metrics

Overview
Name With Ownerchromedp/chromedp
Primary LanguageGo
Program languageGo (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2017-01-24 14:54:30
Pushed At2025-06-20 02:34:40
Last Commit At2025-06-19 14:22:38
Release Count68
Last Release Namev0.13.7 (Posted on )
First Release Namev0.1.0 (Posted on )
用户参与
Stargazers Count12k
Watchers Count158
Fork Count818
Commits Count701
Has Issues Enabled
Issues Count1314
Issue Open Count143
Pull Requests Count135
Pull Requests Open Count1
Pull Requests Close Count117
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private