da4f783362
The subtests were almost all marked as parallel, but that's not enough. That only makes the subtests run in parallel with other subtests within the same tests, not with any other test. Since none of the tests make use of globals nor require the entire program to themselves, properly run all the tests in parallel. Speeds up 'go test' on my 8-core laptop from an average of ~130s to an average of ~50s. Many tests hit timeouts and have sleeps, so we want to avoid running those sequentially whenever possible. |
||
---|---|---|
client | ||
contrib | ||
kb | ||
runner | ||
testdata | ||
.gitignore | ||
.travis.yml | ||
actions.go | ||
chromedp_test.go | ||
chromedp.go | ||
errors.go | ||
eval.go | ||
go.mod | ||
go.sum | ||
handler.go | ||
input_test.go | ||
input.go | ||
js.go | ||
LICENSE | ||
nav_test.go | ||
nav.go | ||
pool_test.go | ||
pool.go | ||
query_test.go | ||
query.go | ||
README.md | ||
sel_test.go | ||
sel.go | ||
util.go |
About chromedp
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
- chromedp: A New Way to Drive the Web - GopherCon SG 2017 talk
- Chrome DevTools Protocol - Chrome DevTools Protocol Domain documentation
- chromedp examples - various
chromedp
examples github.com/chromedp/cdproto
- GoDoc listing for the CDP domains used bychromedp
github.com/chromedp/cdproto-gen
- tool used to generatecdproto
github.com/chromedp/chromedp-proxy
- a simple CDP proxy for logging CDP clients and browsers
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