Releases: puppeteer/puppeteer
v0.12.0
Big Changes
- Chromium 64.0.3240.0 (r508693)
- JSHandles are introduced to handle in-page objects
page.queryObjects
method to query javascript heappage.getMetrics
andevent: 'metrics'
to measure page performancepage.setOfflineMode
to test page offline behavior
API changes
Changed:
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
is supported in npmrc (2babcb0)event: 'console'
dispatches instances of ConsoleMessage instead of array of stringskeyboard.down
generates input event by default (6a8865c)page.addScriptTag
accepts options object instead of URL (c310f13)page.goBack
accepts0
to disable timeout (53531c9)page.goForward
accepts0
to disable timeout (53531c9)page.goto
accepts0
to disable timeout (53531c9)page.pdf
has a newA6
page format (3f9f0f4)page.reload
accepts0
to disable timeout (53531c9)page.waitForSelector
has a newhidden
option (8511db9)puppeteer.launch
Added:
class: ConsoleMessage
(f625502)class: ExecutionContext
(e6af6e1)class: JSHandle
(e6af6e1)elementHandle.boundingBox
(7e28dba)elementHandle.focus
(0af0d7d)elementHandle.press
(0af0d7d)elementHandle.screenshot
(7e28dba)elementHandle.type
(0af0d7d)event: 'metrics'
(b82d319)page.$$eval
(7a8aa73)page.addStyleTag
(c310f13)page.getMetrics
(b82d319)page.queryObjects
(23c0ba0)page.select
(45f2640)page.setOfflineMode
(a02347e)
Removed:
page.injectFile
-page.addScriptTag
now should be used. (c310f13)page.plaintText
- innerText/textContent could be obtained withpage.evaluate
. (1fbf2a8)
Bug Fixes
- #63 - Emulate offline
- #241 - Add keyboard.type
- #304 - Add memory heap snapshot API
- #309 - Is there a way to measure page performance?
- #324 - evaluate - strange execute sequence
- #382 - Implement object handles
- #613 - Hwo can I set HTML select element value?
- #625 - Introduce page.$eval and page.$$eval
- #684 - Clicking element inside iFrame does not give any response
- #734 - Request.resourceType doesnt match DevTools
- #744 - Feature request: console level
- #750 - Throw error with stack trace when launching with an invalid executablePath option
- #782 - Constantly getting Navigation Timeout Error
- #839 - Chromium is not closed completely gracefully
- #864 - Is there a way to open DevTools progammaticaly?
- #869 - URI malformed exception that is not handled
- #884 - What is the reason of using a sync version of writeFile for pdf save?
- #892 - Add
addStyleTag(url)
API - #949 - Replace
injectFile
toinjectScript
and addinjectCSS
- #1010 - ElementHandle screenshot does not count padding (or add options to count the padding/margin)
Raw notes
b555151 - chore: mark version 0.12.0
6a8865c - feat(keyboard): make keyboard.down generate input event by default (#1016)
a02347e - feat(Page): implement page.setOfflineMode (#1032)
fd88eb5 - feat(chromium): roll chromium to r508693 (#1031)
8511db9 - feat(page): waitForSelector hidden option (#967)
8f430fb - fix(ElementHandle.boundingBox): account for margin, padding, and border in element.boxModel (#1017)
1c52830 - feat: roll to 508367 (#1027)
053534b - chore: update yarn lock #1025
c310f13 - feat(Frame): Support options in addScriptTag
and addStyleTag
(#996)
0426e3c - Roll chromium to 508268 (#1019)
c893bf3 - fix(input) Send .code with keyboard events (#1015)
23c0ba0 - feat(Page): introduce Page.queryObjects (#1005)
3f9f0f4 - feat(Page.pdf): add 'A6' page format
9ecf20f - chore: Allow development under Windows platform (#992)
ff08e45 - fix: Remove synchronous operation with file system. (#879)
7a8aa73 - feat(Page): introduce Page.$$eval method (#1006)
464b6a9 - fix(Page.getMetrics): do not report a few metrics (#1001)
b82d319 - feat(Page): Support Page.getMetrics and metrics event. (#939)
77d3c29 - test(launcher): add a test for invalid executablePath option
13f100b - docs(api): fix typo
1fbf2a8 - feat(Page): kill the page.plainText method (#994)
079db90 - fix(JSHandle.toString): clearer description for primitives (#993)
c3fb367 - fix(Request): convert resourceType to all small-caps (#990)
7e28dba - feat(ElementHandle): add EH.boundingBox and EH.screenshot
515f2cd - feat: Roll to r507565 (#987)
e59172d - chore: Use Typescript to lint JSDoc annotations (#986)
7b5d7dd - docs(readme): fix typo (#988)
f1aa18a - feat(Launcher): add devtools option (#953)
e6af6e1 - feat(console): dispatch JSHandles as console arguments (#975)
8d1d9fe - chore(doc): replace 'could' with 'can'
52f92c9 - fix(input): clicking an element should take into account frame position (#971)
a7672ac - fix: return undefined when Page.evaluate encounters circular JSON (#983)
3ecd98d - fix(Page.select): synthesized events should bubble
44cdf85 - chore(doc): fix a link (#977)
4e55867 - chore(doc): fix nits after JSHandles PR (#976)
3214bb7 - chore(doc): fix implicit link to JSHandle
0af0d7d - feat(Input): Add keyboard methods to elementHandle (#801)
0d0f9b7 - feat(JSHandles): introduce JSHandles (#943)
59bcc2e - chore(docs): fix console example in docs/api.md
d3976cb - test: add failing test for storing data in custom userDataDir
c225b93 - feat(Launcher): Allow environment variables definition when launching chromium (#912)
97e40e6 - feat(Frame): Add addStyleTag
API to frame - fixes #892 (#947)
d87480b - Node6: Remove parentheses around the body of async arrow functions (#942)
dc4c878 - chore(doclint): fix doclint tests (#941)
017429e - chore(doclint): exclude constructors by default (#938)
6c9a994 - chore(doclint): support classes inheritance (#935)
8bcf550 - chore(doclint): add basic tests for documentation parsers (#934)
41fd4b5 - chore(doclint): move doclint tests expectations into test folders (#932)
f9640a5 - chore(doc): add a note about using ElementHandle instances (#925)
215b349 - fix(Page): remove event listeners to avoid MaxListenersExceededWarning
53531c9 - feat(page): Allow Page.goto's timeout to be 0
to disable timeout (#887)
bafd937 - chore(tests): fix a few typos in tests (#911)
a6cf823 - feat(Launcher): introduce appMode option
1c292e9 - chore(doc): fix browser.wsEndpoint() return value format (#898)
c46c41d - fix(Launcher): Launcher should handle chrome process errors (#863)
cb280c5 - fix(Launcher): Terminate chrome gracefully on Windows (#876)
f625502 - feat(Console): Introduce ConsoleMessage type (#909)
cfece34 - fix(Network): Do not attempt to normalize malformed URLs. (#875)
ec760ab - chore: update yarn lock (#889)
72161c4 - [roll] Roll chromium to r503964 (#878)
0164b7c - Added info on how to find the browserWSEndpoint (#780)
9b0a062 - [docs] clarify env variables usage with npmrc
2babcb0 - [feat] Support PUPPETEER_SKIP_CHROMIUM_DOWNLOAD in npmrc
45f2640 - [api] Introduce Page.select method (#779)
acdb588 - doc: fix a link (#856)
ccf8fb1 - readme: add try-puppeteer link (#849)
c2b3fe9 - Remove --...
v0.11.0
Big Changes
- Chromium 63.0.3205.0 (r499413)
API changes
Changed:
page.evaluate
now accepts element handles as arguments (9292a56)
Added:
Removed:
elementHandle.evaluate
was removed: element handles could be passed as arguments intopage.evaluate
(9292a56)
Bug Fixes
- #426 - Implement HTTP Authentication API
- #527 - using --user-data-dir=profilepath corrupts settings and remove all extensions
- #572 - Script evaluation throws sometimes with SyntaxError
- #627 - Protocol error Invalid InterceptionId on cancelled requests
- #648 - Proxy settings should be taken from npm config before environment variables
- #713 - page.setExtraHTTPHeaders not working
- #738 - Cant catch errors with .goto
- #745 - Feature request: Run browser process as different user
- #756 - [CI] travis doesn't run tests for node6
- #770 - No argument is passed to waitForFunction/waitFor
Raw notes
611f51b - [doc] Fix thal link (#806)
aa58f25 - doc: add await to browser.close in usage examples (#797)
e2cad56 - page.waitFor should send ...args to page.waitForFunction (#775)
d562db3 - Assert that all extra HTTP header values are strings (#781)
86b05da - disable extensions and google translate by default (#774)
a20df0d - [Doc] add link to environment variable wiki page (#792)
166c909 - [tests] fix a few tests to avoid unhandled promise rejection (#778)
f398e69 - [api] Launcher: Close gracefully when a userDataDir is specified (#700)
d7e6736 - [api] add Puppeteer.executablePath() method (#771)
89e923d - Fix cookies test on windows (#772)
0108720 - Cleanup tests (#769)
9779085 - Add info about deploying puppeteer to Heroku (#762)
9292a56 - [api] Teach page.evaluate to accept element handles as parameters (#725)
69e707a - Build node6 before running tests for it (#757)
a71f287 - Fix evaluation in case of first "undefind" argument (#732)
e5c17ee - Carefully manage unhandled rejections for navigation (#741)
0db6165 - [api] Implement page.authenticate method (#729)
0bea42b - Do not leave dangling promises when sending messages over protocol (#742)
f11e09d - resources.md -> readme.md so it renders on /examples (#753)
568b7bd - Proposal: adding RESOURCES.md for examples (#743)
30541cc - block-images example: use reuters.com (#747)
c4a3d44 - Roll chromium to r499413 (#731)
d791583 - [tests] Skip flaky test (#730)
b8bb80a - support npm proxy configuration for the installation script (#692)
8d2a427 - Docker example (#721)
272fb4d - block-images example: switch from bbc to news.google.com (#708)
d2d951d - Better issue template (#712)
eb86253 - Issue template (#710)
e12ce80 - Output path as chromium gets successfully downloaded (#689)
51a507b - readme: add PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
note (#671)
v0.10.2
Big Changes
- Chromium 62.0.3198.0 (r497674)
API changes
Changed:
page.setExtraHTTPHeaders
accepts object instead of map (66912a7)request.headers
are represented with object instead of map (66912a7)response.headers
are represented with object instead of map (66912a7)request.continue
represents headers overrides as object instead (66912a7)
Added:
puppeteer.launch
option (d5327e6):userDataDir
mouse.move
option (8f74cc8):steps
.
request.resourceType
(11ce8b2)PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
(9d7929c)page.$eval
andframe.$eval
(62ececb)page.tap
(64124df)page.touchscreen.tap
(64124df)elementHandle.tap
(64124df)
Bug Fixes
- #558 - apple.com page hanged when intercepting requests
- #547 - Headers in Response/Request object are case sensitive
- #509 - setExtraHTTPHeaders: support both object and Map as
headers
argument - #411 - Introduce --user-data-dir as part of launcher options
- #423 - dragging
- #594 - EventEmitter memory leak detected. 11 exit listeners added
- #615 - instance.close() let zombie process
- #647 - Errors suppressed when downloading chromium through the install script
- #568 - Can't click mobile version UI (touch event only)
- #569 - how to fire touch event in page.emulate(iPhone)
Raw notes
9d0ad79 - fail installation when puppeteer errors downloading chromium (#654)
64124df - [api] add touchScreen.tap (#639)
e95fb96 - Throw an error when Chromium download is failed (#619)
42fa3af - Remove promise jsdoc (#641)
62ececb - Implement page.$eval (#638)
bf66696 - correct license to be a valid SPDX license expression
a052cdb - Update package.json with Apache License 2.0 (#632)
ce01e84 - [doc] Clarify networkIdleInflight default in docs. (#630)
9d7929c - Add environment variable to skip download (#606)
3365562 - Add DEBUG=* debugging guide to readme (#622)
66676c0 - Kill child process group (#621)
223a106 - Drop deasync: this is a left-over from phantomShim (#607)
c9b0a6c - Fix launcher to not leak event listeners (#605)
11ce8b2 - Implement Request.resourceType getter (#590)
8f74cc8 - [api] Add "step" option to mouse.move method (#601)
77600c6 - Implement ElementHandle.attribute() method (#543)
74c53f3 - Roll chromium to r497674 (#588)
8f66f73 - Fix launcher in case of empty arguments (#582)
d5327e6 - [api] Allow a custom userDataDir to be specified (#555)
66912a7 - [api] use object instead of map for headers (#567)
39b9081 - Bump version to 0.10.2-alpha (#566)
59fc757 - [docs] a mistake in allowed values of page.evaluateMedia
(#580)
f9abc8e - readme: move up note about Page.pdf working on headless only (#577)
da85b44 - [docs] Add CentOS troubleshooting notes (#579)
225e880 - doc: Clarify that examples need Node v8 (#559)
e921a1c - Fix Request Interception (#565)
v0.10.1
Bug Fixes:
- #538 - This package is not compatible with nodejs 6.x, unlike the engines in package.json claims
Raw notes:
cd81944 - Test node6 on travis (#551)
bd5b4fe - Phantom shim mention (#552)
e8f8a1a - Kill PhantomShim. (#533)
2c4dfbf - Fix node6 support for Object.entries and URL object (#548)
4e3b6a1 - Example: add listen for custom event on page load (#529)
be4da58 - Bump tip-of-tree version to 0.10.1-alpha (#534)
751164c - Mark version 0.10.0
Release v0.10.0
Big changes
- Node 6 support! (9212863)
- Support proxies when Puppeteer downloads Chromium (a00ba6a)
- Puppeteer now downloads and runs Chromium 62 (r496140)
API changes
Added:
puppeteer.launch
options (271fd09):handleSIGINT
timeout
page.$$
(151d512)page.content
(598f439)page.cookies
(0791774)page.deleteCookie
(0791774)page.emulateMedia
(6cc2741)page.screenshot
options (127f396):omitBackground
page.setCookie
(0791774)page.setJavaScriptEnabled
(a1414de)elementHandle.uploadFile
(5f0afd5)
Removed:
page.uploadFile
(5f0afd5)
Bug Fixes
- #53 - Add Cookies API
- #316 - Support Node 6
- #462 - Block scripts
- #474 - Page.waitForSelector timeout issue with parallel page tests in a single browser instance
- #448 -
node install.js
fails inside enterprise proxy - #384 - Re-implement $$ (querySelectorAll) using new ElementHandles
- #363 - Program that runs a bundled version of chromium can not stop
- #396 - Examples for .waitForSelector() fail
- #406 - Page.html()
- #312 - Add an option to generate PDF with the screen CSS media type
- #344 - Screenshots are captured with a white background
- #350 - Question: Control sound and audio
- #301 - Print to PDF call not working as expected in example?
Upstream Changes
- DevTools: allow passing domain and path into Network.deleteCookies.
- DevTools: allow passing remote object into DOM.getOuterHTML.
- DevTools: expose DOM.describeNode that does not require DOM agent to be enabled to operate.
Raw notes
10b9dfe - Prepare to release (#532)
60ace82 - add 'use strict'; to examples (#530)
0791774 - Cookies (#314)
9212863 - Node 6 support (#484)
46115f9 - add missing backticks in README.md (#525)
3b44de4 - readme: add evaluate snippet (#524)
b8c3686 - [doc] elaborate on url
parameter in page.goto
. (#504)
4471969 - fix a typo in the api.md (#505)
a1414de - Implement page.setJavaScriptEnabled method
63e2b36 - [doc] Add reference to released API
a330c8e - Bump version to 0.9.1-alpha
1458a3b - fix typo in test.js (#490)
8fe2477 - Enable MutationObserver attributes (#499)
a756bc8 - Don't complain about Windows line endings on Windows (#496)
ac109db - Kill Chrome quickly on Windows (#488)
a00ba6a - Adding proxy support for ChromiumDownloader (#455)
151d512 - Implement page.$$ method (#463)
7e1f2f0 - readme: add console event debugging tip (#481)
a526e9f - Stricter eslint rules (#472)
ce08fc7 - Roll chromium to r496140 (#465)
11e3343 - Put chrome profiles into a temporary directory (#439)
1f9b4fb - Change let into const (#457)
5d6d3e0 - cleanup: Use ES6 default params (#447)
271fd09 - Launcher: add timeout to chrome launching (#434)
afd9012 - waitTask should survive cross-process navigation (#435)
c1731dd - Fail gracefully when chromium failed to download (#430)
598f439 - Add Page.content() method. Fixes #406. (#419)
6fcf3d9 - Fix grammar in troubleshooting.md
16e1499 - doc: fix typo (#431)
fcb8ab9 - Add troubleshooting.md (#428)
a5eca57 - Add proxy server example (#427)
281db8f - doc: change ambiguous phrase in api.md (#410)
292c7a2 - doc: remove mentions of removed Boxy mixin (#425)
6a35c97 - doc: fix descriptions of certain page methods (#424)
6581416 - doc: fix some nits in code examples from api.md (#407)
3b03fdd - example 'block images' - make extension check case insensitive (#401)
9ede314 - doc: fix some links in api.md (#400)
ab125f6 - doc: Fix return type in response.text()
e8b4288 - readme: fix missing word (#414)
caa6f81 - docs: note headless flag defaults to true (#332)
7796ca5 - examples: replace let with const (#403)
8c245ee - doc: fix code examples in CONTRIBUTING.md (#402)
970e9c4 - doc: fix copy-paste artefacts (#394)
f851501 - doc: remove a link to a deleted example (#392)
6289219 - README: Fix a typo (#385)
6cc2741 - Introduce page.emulateMedia method (#383)
8f43bef - Make prettier JS snippets (#377)
ae3fedf - readme: start of useful debugging tips (#352)
500b956 - #366 - tone of logo surface from light source (#369)
d71feb6 - Determine failed navigation based on Frame.unreachedURL (#365)
ae14c1e - Use randomized folder names for user profile directories (#364)
127f396 - Allow capturing transparent screenshots (#354)
1ca7849 - Mute audio in headless, closes #350 (#355)
b9c7c36 - Add Serializable type into the docs (#318)
16e190b - Indent the code in README.md (#319)
f3143a3 - Fix flaky test (#351)
5f0afd5 - Move uploadFiles onto ElementHandle (#348)
ad1b292 - install.js: refactor to template string (#340)
21aa0a2 - example 'block images' - fix typo and add other extensions (#334)
2655f20 - docs: fix link to ElementHandle (#345)
e7356bf - docs: fix typo in event: 'load'
section (#325)
e5876c7 - corrected minor typos (#322)
7cef3d7 - Teach page.pdf to respect printBackground argument (#307)
a93377f - readme: migrate from travis-ci .com to .org (#297)
3cc5ba4 - update code example: setRequestInterceptionEnabled (#294)
da53218 - Fix doc on pdf method. Minor addition to PDF path option docs. (#292)