687cf6d766
We were doing this for extra open tabs, since NewContext was taking care of detaching and closing the respective target. And cancelling an entire allocator also properly waited for all the resources, such as processes and temporary directories, to be cleaned up. However, this didn't work for a browser's first context; cancelling it should wait for that one browser's resources to be cleaned up, but that wasn't implemented. Do that, fixing the TODO in TestExecAllocator. |
||
---|---|---|
.github | ||
kb | ||
testdata | ||
.gitignore | ||
.travis.yml | ||
actions.go | ||
allocate_test.go | ||
allocate.go | ||
browser.go | ||
chromedp_test.go | ||
conn.go | ||
context_test.go | ||
context.go | ||
errors.go | ||
eval.go | ||
example_test.go | ||
go.mod | ||
go.sum | ||
input_test.go | ||
input.go | ||
js.go | ||
LICENSE | ||
nav_test.go | ||
nav.go | ||
query_test.go | ||
query.go | ||
README.md | ||
sel_test.go | ||
sel.go | ||
target.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