Go to file
Daniel Martí 117274bc5d run all tests as separate tabs on one browser
This vastly speeds up 'go test' on my laptop from ~10s to ~3s, as we
save a lot of time spinning up new Chrome browser processes.

In practice, each tab is a separate process anyway, but there's a lot of
added overhead if we're firing up the entire browser, particularly with
an empty user data dir.

This makes 'go test' racy now, as Browser doesn't support creating tabs
concurrently right now. Follow-up commits will fix that, with the help
of 'go test -race' after this commit.
2019-04-01 14:25:24 +01:00
.github add a simple issue template 2019-02-22 00:13:27 +01:00
kb start the chromedp v2 refactor 2019-04-01 12:17:28 +01:00
testdata don't crash when loading pages with iframes 2019-04-01 12:18:16 +01:00
.gitignore Changing chromedp-gen => cdproto-gen 2018-02-16 07:23:02 +07:00
.travis.yml start running the tests on CI again 2019-04-01 12:18:16 +01:00
actions.go use consistent context.Context var names 2019-04-01 12:18:16 +01:00
allocate_test.go test cancelling an entire Allocator directly 2019-04-01 12:18:16 +01:00
allocate.go clean up various pieces of the API 2019-04-01 12:18:16 +01:00
browser.go clean up various pieces of the API 2019-04-01 12:18:16 +01:00
chromedp_test.go run all tests as separate tabs on one browser 2019-04-01 14:25:24 +01:00
conn.go clean up various pieces of the API 2019-04-01 12:18:16 +01:00
context.go add support for opening multiple tabs 2019-04-01 12:18:16 +01:00
errors.go start the chromedp v2 refactor 2019-04-01 12:17:28 +01:00
eval.go use consistent context.Context var names 2019-04-01 12:18:16 +01:00
example_test.go add support for opening multiple tabs 2019-04-01 12:18:16 +01:00
go.mod fix build breakage with newer cdproto versions 2019-03-28 21:45:27 +00:00
go.sum fix build breakage with newer cdproto versions 2019-03-28 21:45:27 +00:00
handler.go don't crash when loading pages with iframes 2019-04-01 12:18:16 +01:00
input_test.go get rid of all sleeps in tests 2019-04-01 12:18:16 +01:00
input.go get rid of all sleeps in tests 2019-04-01 12:18:16 +01:00
js.go Splitting repositories 2017-12-28 11:17:14 +07:00
LICENSE Minor code cleanup 2018-03-27 04:31:09 +07:00
nav_test.go don't crash when loading pages with iframes 2019-04-01 12:18:16 +01:00
nav.go use consistent context.Context var names 2019-04-01 12:18:16 +01:00
query_test.go rewrite TestReload without a sleep 2019-04-01 12:18:16 +01:00
query.go use consistent context.Context var names 2019-04-01 12:18:16 +01:00
README.md Changing Debugging => DevTools 2018-07-13 12:46:30 +07:00
sel_test.go start the chromedp v2 refactor 2019-04-01 12:17:28 +01:00
sel.go use consistent context.Context var names 2019-04-01 12:18:16 +01:00
util.go don't crash when loading pages with iframes 2019-04-01 12:18:16 +01:00

About chromedp Build Status Coverage Status

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

Installing

Install in the usual Go way:

go get -u github.com/chromedp/chromedp

Examples

Please see the examples project for more examples. Please refer to the GoDoc API listing for a summary of the API and Actions.

Resources

TODO

  • Move timeouts to context (defaults)
  • Implement more query selector options (allow over riding context timeouts)
  • Contextual actions for "dry run" (or via an accumulator?)
  • Network loader / manager
  • Profiler