Releases: puppeteer/puppeteer
v1.6.1
Big Changes
- Chromium 69.0.3494.0 (r575458)
API changes
No API changes.
Bug Fixes
- #2927 - Bad font rendering on Linux
Raw notes
0a4f24a - chore: mark version v1.6.1
45e140a - fix(launcher): always add about:blank
to default arguments.
66289bd - fix: bump Chromium version to fix font rendering on Linux
v1.6.0
Big Changes
- Chromium 69.0.3477.0 (r571375)
- Improved reliability of clicking with
page.click
andelementHandle.click
. - It's now possible to attach to extension background pages with
target.page()
.
API Changes
Changed:
target.page()
now can be used to attach to extension background pages (38f112f)coverage.startJSCoverage
accepts a new optionreportAnonymousScripts
(12bc1e1)
Added:
page.waitForRequest
(726c8dc)page.waitForResponse
(726c8dc)elementHandle.isIntersectingViewport
(96c558d)
Bug Fixes
- #1247 - SVG element causes DOM.getBoxModel error
- #1300 - Tracing: allow adding custom tracing categories
- #1325 - When would an error "Cannot find context with specified id undefined" happen?
- #2362 - [Feature] Add page.waitForRequest() and page.waitForResponse()
- #2438 - Add target.evaluate and target.evaluateHandle
- #2629 - Method to show if element is displayed
- #2653 - Can the error message be more specific?
- #2685 - Page.pdf - Colors rendering
- #2708 - $$eval call causes error if no elements found
- #2709 - In mixed-content page page.exposeFunction is stuck indefinitely
- #2730 - DeviceDescriptors: Chrome userAgent is missing version number
- #2761 - Web Worker errors are not collected by
page.on('pageerror'...
- #2765 - Getting URLs that differs only in hashes make next responses to be null
- #2777 - Can't collect coverage of anonymous scripts
- #2798 - Possible bug in click using visible center
- #2804 - click does not fire.
Raw Notes
e1a2140 - chore: mark version v1.6.0
66fa0d3 - test: cleanup page.waitForRequest/page.waitForResponse tests (#2880)
726c8dc - feat(page): introduce waitForRequest and waitForResponse methods (#2776)
3ebbf12 - fix(coverage): report anonymous scripts with debugger:// urls (#2875)
254bc80 - chore: cleanup ElementHandle.isIntersectingViewport (#2874)
12bc1e1 - feat(coverage): add an option to collect coverage of anonymous scripts (#2796)
96c558d - feat(elementhandle): introduce elementHandle.isIntersectingViewport() method. (#2673)
4f8d00e - docs(readme): Update README.md (#2863)
e445e1c - chore(ci): disable brew auto-update (#2861)
88362f7 - docs(readme.md): Fix typo (#2858)
9313c83 - docs(readme): update FAQ (#2826)
eb53a8f - docs(api.md): Fix selector description for pages & frames (#2841)
cfc0571 - feat: better timeout stack trace (#2843)
22fa00a - fix: wait for the chromeProcess to exit, not close (#2838)
fb7c4e0 - docs(readme): minor nits (#2827)
5955aff - fix(page.click): teach puppeteer click wrapped links (#2822)
59e7f7e - feat(chromium): roll Chromium to r571375 (#2817)
acb89dd - docs(api.md): add note on page.pdf() color rendering behavior (#2821)
871b204 - refactor: simplify EmulationManager (#2816)
c4acc63 - feat(chromium): roll Chromium to r571040 (#2814)
d6741ec - test: add test that verifies pptr works with SVG nodes (#2805)
f55d005 - fix(page): teach page.click() to click partially offscreen buttons (#2806)
6ca43cf - docs(api.md): clarify docs about waitForNavigation (#2788)
aae73f5 - feat(worker): implement pageerror event from a worker (#2795)
811415b - docs(api.md): fix a typo (#2789)
3b20839 - docs(api.md): update note about page.goto() returned value (#2787)
a460114 - test: fix appveyour flakiness (#2779)
4178b98 - test: add test that breaks subsequent page.goto (#2775)
dcae6bc - feat(chromium): roll Chromium to r568432 (#2769)
ea8ec1e - chore(ci): Configure OSX on Cirrus CI (#2774)
1064aa4 - feat(request): add new error reasons for request.abort() (#2771)
37dbfc2 - test: fix random tests flakiness (#2770)
f197d2e - fix: don't pass a reference to the page into frames (#2766)
b20cde6 - fix(page): migrate exposeFunction from console.debug to Runtime.installBinding #2631
af0bd15 - test: split out ignoreHTTPSErrors tests (#2745)
c430138 - test: drop PDF tests (#2744)
861f070 - feat(chromium): roll Chromium to r567388 (#2743)
73f9c48 - feat: nicer protocol error messages (#2742)
9a650c8 - feat(element-handle): remove throw in case of empty elementHandle (#2740)
38f112f - feat(target): add support for target.page for 'backgroud_page' (#2600)
cd8d750 - fix(devicedescriptors): fix UA in DeviceDescriptors (#2741)
ddfdaf9 - fix(page): fix race condition in WaitTask (#2739)
ed7a26c - feat(tracing): enable high resolution JavaScript sampling (#2702)
eca6610 - docs(api.md): fix keyboard.press note about modifier keys (#2711)
9498b10 - fix(helpers): support thrown strings and numbers in getExceptionMessage (#2715)
93e1289 - test: make tests work on non-English locales (#2736)
1875cb4 - docs(api.md): fix return type docs of ElementHandle.$x (#2723)
d481fd5 - fix(types): type FrameManager in Page.js (#2718)
147f98d - chore: bump version to v1.5.0-post (#2699)
v1.5.0
Big Changes
- Browser Contexts can be used to isolate the cookies and other data usually shared between pages.
- Workers can now be used to interact with Web Workers.
- pptr.dev is the new official site for Puppeteer docs.
It is open source at https://github.com/GoogleChromeLabs/pptr.dev - Chromium 69.0.3452.0 (r564778)
API Changes
Added
browser.browserContexts()
(3b03ff6)browser.createIncognitoBrowserContext()
(3b03ff6)event: 'workercreated'
(93fe2b5)event: 'workerdestroyed'
(93fe2b5)page.isClosed()
(32f4c17)page.workers()
(93fe2b5)request.isNavigationRequest()
(724fa51)target.browserContext()
(3b03ff6)target.opener()
(f635668)
Bug Fixes
- #2640 - console message from Webworker receives only first argument
- #2684 - Slack invite link in readme doesn't work
- #2632 - Workers are flaky
- #2627 - How to set header in puppeter just main page request not all request
- #1830 - keep track of opened popups and (maybe optionally) close them when page.close() is called
- #2547 - Annoying "Assertion failed" logs even when error is handled
- #2566 - Allow base64 result in screenshot
- #2402 - Different initial pages in different modes
- #2501 - do we have any method or attribute to indicate that page has closed?
- #2540 - waitForPredicatePageFunction doesn't respect timeout equal to 0
- #2350 - Expose Page Workers
- #2439 - Target: pass through "background_page" types
- #85 - Support browser contexts to launch different sessions
Raw notes
75ba86f fix: emit all arguments from worker console logs (#2697)
9083335 docs(contributing): add section about releasing to NPM (#2695)
2ff0adc feat: worker convenience methods (#2677)
3e82a54 docs: update slack invite link in README.md (#2690)
36b8700 chore(ci): remove Win from Cirrus builds (#2689)
a058468 feat: roll Chromium to r564778 (#2681)
4bc2331 chore(ci): temporary disable cirrus win builds (#2666)
efc0e0f feat(chromium): roll Chromium to r563942 (#2665)
d802372 fix: disable OOPIF by default (#2661)
85d5a33 chore(ci): switch Windows containers (#2662)
9904da2 chore(doclint): remove old unused table-of-contents generator (#2659)
9955a1e fix(browser): ensure first page is created when browser is launched (#2658)
07b91f6 test: split out headful tests into headful.spec.js (#2657)
e038026 docs(api.md): Fix CDPSession code example (#2654)
0f8c7e7 feat(launcher): disable crash reporting by default (#2652)
724fa51 feat(network): introduce Request.isNavigationRequest() method (#2633)
f635668 feat(targets): add target.opener() (#2641)
0b94fa7 chore: stop using console.assert everywhere (#2646)
35e3f12 fix(workers): swallow errors when auto-detaching from page subtargets (#2649)
1c0ecc3 test: fix flaky test (#2650)
0ba72df test: verify ignoreHTTPSErrors works with puppeteer.connect (#2648)
754df58 docs(api.md): fix table-of-contents (#2636)
0ad0096 chore(utils): change utils/check_availability.js to fetch last revisions (#2635)
14b5144 docs(examples): add link to puppeteer-har (#2643)
1c2adf6 fix(workers): workaround worker execution context flakiness (#2596)
469b910 feat(page): allow screenshot to return a base64 string (#2586)
e1c40bd chore(examples): Change networkidle2 to networkidle0 (#2618)
1bbd094 feat(test): enable dumpio in tests #2610
8e12d19 fix(tests): normalize scrollbars in headful tests (#2622)
41ccd0b chore(docs): remove old and non relevant function usage (#2623)
5ff67db docs(api.md): Add the word "network" (#2624)
c9a843b chore(types): generate protocol.d.ts on install (#2625)
7d64d40 chore(frame): minor refactor in FrameManager (#2597)
f6393d8 docs(api.md): mention that page.$$eval and frame.$$eval return arrays (#2595)
b8df8bd feat(launcher): launch browser with 'about:blank' by default (#2594)
1e07925 feat(elementhandle): add elementHandle.$$eval method (#2589)
32f4c17 feat(page): add page.isClosed method (#2588)
b522eca docs(api.md): update puppeteer overview (#2584)
debfe7e fix(page): respect timeout 0 in page.waitForFunction (#2563)
6a0627a fix(page): Don't report clientside error with a node stack attached (#2572)
17bc651 docs(api.md): goForward should say "can not go forward" (#2578)
93fe2b5 feat(Page): introduce workers (#2560)
b474f2c test: add a missing test for elementHandle. (#2580)
2d9e5a0 test: add test that validates that pages open with userDataDir arg (#2564)
5164593 refactor: do not pass user options to browser constructor (#2562)
2d82e08 chore: bump dependencies (#2559)
de82b87 docs(documentation) capitalize and end sentences (#2537)
1c4a8f0 docs(README): remove duplicate line
23d25a6 feat(Target): Pass through "background_page" types (#2439) (#2493)
3b03ff6 feat(BrowserContext): introduce Browser Contexts. (#2523)
58c672b feat(Chromium): roll Chromium to r557152 (#2522)
d02440d chore: bump version to v1.4.0-post (#2521)
v1.4.0
Big Changes
- Chromium 68.0.3419.0 (r555668)
API changes
Added
Changed
page.close
(a310d57) now accepts the optionrunBeforeUnload
.
Bug Fixes
- #1860 - Docs missing for page.waitForNavigation()
- #1879 - Navigation Timeout Exceeded when page returns a 204 code or contains iframe returning 204
- #1923 - API link should point to the latest stable version
- #1939 - Uncaught browser console error message
- #2275 - Add .browser() methods to page class~
- #2386 - onbeforeunload not called when page.close() called
- #2394 - NSP is reporting vulnerabilities with the dependancies debug and mime.
- #2411 - Page.goto returns null for some URLs since version 1.3.0
- #2448 - DeviceDescriptors: add pixel2/pixel2 xl
- #2502 - Page.evaluate should bypass user gestures
Raw notes
88b9968 - feat(ElementHandle): introduce elementHandle.$eval (#2407)
1d225cf - fix: allow user gesture restricted code to be run in page.evaluate (#2503)
1db4986 - feat(Chromium): roll Chromium to r555668 (#2495)
a310d57 - feat(Page): add option to run 'beforeunload' when closing the page (#2478)
3760188 - feat(Chromium): roll Chromium to r554716 (#2477)
afee010 - docs(README): add a debugging section (#2467)
e236887 - feat(Page): report 'Log' domain entries as 'console' events (#2400)
58c4668 - fix(Page): fix page.goto to return Response when page pushes new state (#2468)
a2a9100 - docs(examples): add a link for jest-puppeteer (#2466)
eb1826b - feat(DeviceDescriptors): add pixel2/pixel2 xl (#2464)
f797f8c - docs(api.md): add explanation to page.waitForNavigation (#2354)
eded38c - test: verify file url interception works as expected (#2451)
8a62b10 - chore: testrunner's ".not" should print appropriate message (#2459)
9ae64f2 - docs(troubleshooting): newest Chromium package supported on Alpine (#2453)
b96815a - test: verify Page.goto fails when server returns 204 (#2452)
d9bb7ee - chore: add a bunch of non-needed files to .npmignore (#2450) ...
v1.3.0
Big Changes
- Chromium 67.0.3391.0 (r549031)
- Anchor-navigation is fixed. See #257
- Page's CSP can be by-passed with
page.setBypassCSP
. See #1229.
API changes
Added
event: 'page.close'
(d46e157)page.setBypassCSP
(35e34db)elementHandle.boxModel()
(41d5838)PUPPETEER_CHROMIUM_REVISION
(5061035)puppeteer.launch
accepts a new argument:pipe
(94c32e4)
Changed
page.tracing.stop
(98bb261) now returns a buffer
Bug Fixes
- #257 - Hash-only navigation doesn't work
- #563 -
page.screenshot()
rejects when slowMo >= 1000 and https cert is self-signed even withignoreHTTPSErrors
- #1229 - Page with CSP breaks puppeteer
- #1357 - Feature: improve boundingBox method at ElementHandle
- #1429 - slowMo + userDataDir = Error: Protocol error (Browser.close): Target closed.
- #1537 - Test 'userDataDir option should restore cookies' is flaky
- #1834 - Add --disable-dev-shm-usage to default launch flags
- #1936 - When a frame fails to load due to a mixed content issue, the main Page is never considered loaded.
- #2037 - Improve error message for timeouts
- #2082 - Tests: break into smaller files
- #2148 - Tracing: stop() should return Promise
- #2200 - page.waitForFunction does not support disable timeout
- #2236 - [win10] run coverage -> rm is not defined
- #2279 - TypeScript 2.8.0 fails to lint types
- #2283 - Chromium binary permissions is only -rwx------
- #2295 - page.evaluate() throws and hangs if returned value is an array with Symbol
Raw notes
98bb261 - feat(Tracing): return a buffer from tracing.stop (#2360)
04991ad - test: consolidate network tests in one file (#2355)
f8cba45 - fix(Network): explicitly throw on content request for redirect response (#2352)
18f2ecd - fix(Launcher): launch chrome with --disable-dev-shm-usage by default (#2351)
0b64242 - test: add missing rm
function to test.js
(#2349)
a7d59b5 - fix(Page): Page.waitForNavigation should correctly handle mixed content (#2339)
5089d2e - fix(BrowserFetcher): ensure executable has proper permissions (#2342)
beea6f9 - chore(testrunner): fix typo in readme
fafd156 - fix(Page): support anchor navigation (#2338)
2b95774 - docs(api.md): mention header/footer template limitations in page.pdf
. (#2341)
c5902de - fix(Page): fix Page.evaluate with Symbols in arrays (#2340)
5d106f7 - test: flatten tests (#2337)
06d6191 - test: refactor utils.waitForEvents into utils.waitEvent (#2336)
c86c12e - fix(Launcher): consume protocol errors when initiating browser.close() (#2332)
a052b9e - docs(troubleshooting): Adding Travis CI mention (#2334)
717d4a7 - docs(api): warn about slow screenshots on OS X (#2326)
57fa690 - fix(Connection): do not assert that methods always have callbacks. (#2330)
294f33b - chore(types): type check the rest of the protocol (#2328)
45d97e5 - feat(Chromium): roll Chromium to r549031 (#2327)
8c54f41 - chore(types): generate a d.ts file for protocol types (#2325)
35e34db - feat(Page): introduce Page.setBypassCSP (#2324)
dfcee2e - feat(Chromium): roll Chromium to r548690 (#2323)
846c080 - feat(Page): Page.addScriptTag should throw when blocked by CSP (#2320)
4663b43 - test: add test on Page.evaluateOnNewDocument with CSP (#2319)
1fdd338 - docs(api.md): fix minor spelling errors (#2314)
2370618 - chore(types): upgrade to TypeScript 2.8.1 (#2304)
3b88d0d - docs(readme): add googlechromelabs repo. (#2306)
98093f0 - feat(Chromium): roll Chromium to r548153 (#2312)
f925158 - test: add test for page.waitForFunction with script CSP (#2305)
94c32e4 - feat(Launcher): introduce pipe
option (#2288)
f51a315 - docs(README): Removed --save flag for npm install (#2302)
dde45fa - feat(FrameManage): improve errors from frame.waitFor* methods (#2292)
8b0fd0a - feat(install): support npm config for chromium revision (#2290)
c4da19b - test(ElementHandle.boxModel): remake test to make it more readable (#2287)
c6c60aa - feat(Chromium): roll Chromium to r546920 (#2286)
41d5838 - feat(ElementHandle): add ElementHandle.boxModel method (#2256)
d4f24f1 - docs(README): add checkly to list of services (#2209)
5061035 - feat(install): introduce PUPPETEER_CHROMIUM_REVISION (#2246)
ebe1737 - chore: break page.spec.js to smaller files (#2257)
abb05e0 - feat(page): add an option to disable timeout for waitForFunction (#2252)
71a07bb - chore: fixate TypeScript to ~2.7.0 (#2280)
9af02a0 - docs(api.md): fix some links (#2253)
d46e157 - feat(Page): page 'close' event (#2232)
4748196 - test: Break 'page.spec.js' to smaller files (#2218)
38c6873 - test: break test.js into smaller files (#2193)
311f307 - chore: bump version to v1.2.0-post (#2205)
v1.2.0
Big Changes
- Chromium 67.0.3372.0 (r543305)
API changes
Added
elementHandle.contentFrame()
(223b592)request.redirectChain()
(ec3025f)page.addScriptTag
accepts a new option:type
(625c7eb)
Bug Fixes
- #433 - No way to associate Frame object with the <iframe> element it represents
- #1491 - page.close() followed by browser.pages() includes closed page
- #1768 - Feature Request: LCOV or Istanbul format code coverage
- #1779 - Screenshot element larger than viewport
- #1816 - Expose redirect chain for requests
- #2021 - page.evaluate unpredictable when it triggers a reload
- #2046 - Using the dumpio setting throws an error in v1.1.0
- #2053 - Allow Chromium process "detached" argument to be configurable?
- #2062 - Docs: emphasise the differences between Page.evaluate/ Page.evaluateHandle and JSHandle / ElementHandle
- #2078 - addScriptTag type=module
- #2116 - page.goto with file:/// URI returns non-ok response
- #2165 - Add URL to invalid address
Raw notes
4e1f2e2 - fix(Launcher): killing a process can throw (#2102)
ec3025f - feat(Network): implement request.redirectChain() api (#2194)
c4b1ac9 - test: another attempt to fix sw test #2201
150e5a9 - test: eliminate racy pattern in multiple tests (#2202)
309cafb - feat(Chromium): roll chromium to r543305 (#2196)
d79eb70 - fix(node6): fix one line await arrow functions #2198
7d387d8 - chore(FrameManager): remove extra space (#2187)
c082a82 - fix(Launcher): do not detach child process on windows (#2081)
afcc74e - test: fix Matcher.toEqual to not depend on key insertion order (#2091)
4b7fbf8 - test: fix serviceWorker test flakiness (#2195)
625c7eb - feat(FrameManager): add type=module to addScriptTag (#2090)
552be1a - docs(README): Add's page.removeListener to Page class examples (#2122)
554bd59 - chore(CI): add experimental Cirrus CI (#2181)
fc7e4d1 - chore(CI): fix node.js version on Travis and AppVeyor (#2180)
5af70e8 - docs(api.md): fix typo (#2177)
52d3bc0 - feat(Page): introduce url at error message at page.goto (#2174)
826fe42 - fix(Network): response.ok should be true for file:// urls (#2152)
cad71d9 - chore: removed duplicated jsdoc annotation in NetworkManager.js (#2132)
0defecf - fix(test): add missing test for making sure chrome is closed (#2109)
44d8000 - docs(README): clarify how to launch scripts (#2133)
edc510c - docs: add documentation referencing puppeteer-to-istanbul (#2135)
c857aef - docs(api.md): fix snippet to await page.setViewport() (#2113)
ffe5b63 - chore: refactor Browser.js into seperate files (#2097)
8578283 - docs(api.md): Fix evaluateOnNewDocument sample syntax error (#2063)
2a84f9f - docs(api.md): add link to the v1.1.1 (#2096)
3c6ed67 - chore: bump v1.1.1-post (#2095)
223b592 - feat(ElementHandle): implement ElementHandle.contentFrame() (#2094)
e2b96df - chore(test): simplify element screenshot tests (#2093)
56a475f - feat: elHandle:screenshot captures full element (#1787)
b07e705 - docs(README): mention testing prelease (#2088)
fc2a104 - fix(evaluate): throw error when page reloads during page.evaluate. (#2073)
6688774 - fix(Launcher): fix dumpio bug (#2071)
ee7ebd6 - docs(README): drop scraping bullet (#2080)
80078d9 - fix(Connection): swallow all the ws errors after connection's closed (#2077)
28f88e8 - feat(Chromium): roll Chromium to r538022 (#2072)
090590a - docs(api.md): Add more explanation for page.evaluateHandle() (#1867)
d75fdb7 - fix(Browser): wait for the page to close in the browser in page.close (#2064)
8508180 - chore: bump version to 1.1.0-post (#2043)
v1.1.1
v1.1.0
Big Changes
- Chromium 66.0.3348.0 (r536395)
BrowserFetcher
API to download chromium instancesresponse.fromCache()
andresponse.fromServiceWorker()
for caching insightspage.waitForXPath()
to wait for XPath selectors
API Changes
Changed:
page.waitFor()
now treats strings that start with//
as xpath selectors and falls back topage.waitForXPath()
(cb684eb).browser.targets()
now reports browser target (fc94f98).
Added:
event: 'domcontentloaded'
(59f6d42)class: BrowserFetcher
(a363a73)class: SecurityDetails
(856c431)puppeteer.createBrowserFetcher()
(a363a73)page.setCacheEnabled()
(ac1b9a0)page.waitForXPath()
(cb684eb)frame.click()
(660b657)frame.evaluateHandle()
(189deb8)frame.focus()
(660b657)frame.hover()
(660b657)frame.tap()
(660b657)frame.type()
(660b657)frame.waitForXPath()
(cb684eb)executionContext.frame()
(ae22ef3)response.fromCache()
(ecc3adc)response.fromServiceWorker()
(ecc3adc)response.securityDetails()
(856c431)
Bug Fixes
- #379, #1835 - docs(troubleshooting): add docker alpine example (#1836)
- #1051 - feat(Frame): add Frame.evaluateHandle (#1885)
- #1391 - fix: page.goto should support pages with self requests (#1391) (#1781)
- #1421 - docs(api.md): added page.click + waitForNavigation example (#1792)
- #1551 - feat(Response): add Response.fromCache / Response.fromServiceWorker (#1971)
- #1556 - feat(Page): add
setCacheEnabled(enabled)
to Page object (#1609) - #1580 - feat: add Page.Events.DOMContentLoaded (#1730)
- #1748 - feat: Introduce BrowserFetcher class (#1983)
- #1757 - feat(Page): introduce Page.waitForXPath (#1767)
- #1824 - docs(troubleshooting): Add fonts to docker example to support major charsets (#1842)
- #1874 - fix(Docs): fix Console example (#1961)
- #1901 - Fix: Remove key codes from _pressedKeys Set after keyboard.up() is called (#1928)
- #1960 - fix: allow timeouts of be 0 (#1964)
Raw Notes
fc94f98 - feat(Targets): expose browser target (#2036)
e8a085c - feat(appMode): support pipes for appMode (#2032)
3656cc2 - docs(api.md): fix nits in securityDetails description (#2023)
43c0feb - fix(Network): fulfill security details for response redirects (#2025)
4a53bca - feat(Chromium): roll Chromium to r536395 (#2024)
ee5ec3e - test: await browser closing in tests (#2022)
ae22ef3 - feat(ExecutionContext): introduce ExecutionContext.frame() (#1972)
885c93a - docs(troubleshooting): Add AWS Lambda solution (#2003)
856c431 - feat(Network): introduce response.securityDetails() method (#1880)
700244a - test: dont race against the mutation observer (#2016)
1b6ee37 - fix(test): merge _pressedKeys test into the .repeat test (#2017)
f3ba436 - Fix: Remove key codes from _pressedKeys Set after keyboard.up() is called (#1928)
b275e66 - chore: Spelling and Markdown Consistency (#1998)
070243e - docs(CONTRIBUTING): update contributing.md (#1973)
ac1b9a0 - feat(Page): add setCacheEnabled(enabled)
to Page object (#1609)
18a1fb9 - docs(README): Correcting Chrome dependency size (#1946)
cde6d6c - docs: add the word the
everywhere (#1988)
a363a73 - feat: Introduce BrowserFetcher class (#1983)
18c9755 - test: create tmp folder in os.tmp() folder (#1982)
4046415 - docs(README): mention troubleshooting.md in FAQ (#1911)
ecc3adc - feat(Response): add Response.fromCache / Response.fromServiceWorker (#1971)
660b657 - feat(Frame): add click(), focus(), hover(), tap() and type() (#1970)
48218fa - docs(api.md): page.error
event dispatchers error
2f1157b - fix(Docs): fix Console example (#1961)
bc69026 - fix: allow timeouts of be 0 (#1964)
37a1e17 - chore: remove unused parameter in EmulationManager (#1968)
e998ac9 - docs(README): Adding in browserless to README (#1962)
cfb728b - feat(Chromium): roll to r533271 (#1938)
1716a74 - docs(troubleshooting): add aws lambda resources (#1926)
bae44a8 - test: teach test reporter to highlight test stackframe on failures. (#1930)
4886d03 - docs: fix typo in troubleshooting.md (#1909)
ddc59b2 - docs(api.md): fix exposeFunction example (#1900)
189deb8 - feat(Frame): add Frame.evaluateHandle (#1885)
5175d8e - fix(Page): fix Page.select() behavior to be on par with docs (#1886)
a39d96e - docs(api.md): fix sample code in API doc, request.url
-> request.url()
(#1889)
f2b6016 - chore: switch to npm from yarn (#1878)
b61e67d - feat: add slowMo option to puppeteer.connect (#1864)
797b561 - docs(README): Update debugging tips (#1868)
cb684eb - feat(Page): introduce Page.waitForXPath (#1767)
62597bf - docs(troubleshooting): Add fonts to docker example to support major charsets (#1842)
102f10c - docs(api.md): Fix sample code in API doc (#1821)
2bf42fd - docs(troubleshooting): fix a link (#1845)
d2715d1 - docs(api.md): fix typo on api docs (#1849)
e031264 - docs(api): fix coverage example and typo (#1854)
49d3799 - docs(troubleshooting): add docker alpine example (#1836)
59f6d42 - feat: add Page.Events.DOMContentLoaded (#1730)
25b35c5 - docs(api.md): fix missing await in examples (#1801)
8c93084 - docs(examples/readme.md): Add one more link to the examples repository (#1807)
31a1f9a - docs(api.md): added page.click + waitForNavigation example (#1792)
c866c17 - fix: page.goto should support pages with self requests (#1391) (#1781)
aed7019 - chore: bump version to 1.0.0-post (#1789)
v1.0.0
Big Changes
- Chromium 65.0.3312.0 (r526987)
page.coverage
namespace with CSS and JavaScript coverage supportpage.pdf()
now supports header/footer customization- XPath support with
page.$x
/frame.$x
/elementHandle.$x
target.createCDPSession()
to work with the raw Devtools Protocol.
API Changes
Changed:
dialog.type
getter became a methoddialog.type()
(b737373)console.args
getter became a methodconsole.args()
(b737373)console.text
getter became a methodconsole.text()
(b737373)console.type
getter became a methodconsole.type()
(b737373)request.headers
getter became a methodrequest.headers()
(b737373)request.method
getter became a methodrequest.method()
(b737373)request.postData
getter became a methodrequest.postData()
(b737373)request.resourceType
getter became a methodrequest.resourceType()
(b737373)request.url
getter became a methodrequest.url()
(b737373)response.headers
getter became a methodresponse.headers()
(b737373)response.ok
getter became a methodresponse.ok()
(b737373)response.status
getter became a methodresponse.status()
(b737373)response.url
getter became a methodresponse.url()
(b737373)puppeteer.launch
accepts more options:page.pdf
allows to customize header and footer with new options:page.waitFor()
now acceptsJSHandle
's as arguments and returnsJSHandle
it resolves to. (05b1aca)page.waitForFunction()
now acceptsJSHandle
's as arguments and returnsJSHandle
it resolves to. (05b1aca)page.waitForSelector()
returnsElementHandle
it resolves to. (05b1aca)page.tracing.start()
can be launched with custom tracing categoriescategories
options (5a64888)
Added:
puppeteer.defaultArgs()
(8a40cd5)browser.process()
(4eaf52f)browser.userAgent()
(8e9c54a)page.$x(expression)
(60ba8c3)frame.$x(expression)
(60ba8c3)elementHandle.$x(expression)
(60ba8c3)frame.content()
(770c17b)frame.setContent(html)
(770c17b)request.frame()
(c29822d)page.setDefaultNavigationTimeout(timeout)
(ec8e40f)page.target
(5368051)page.coverage.startCSSCoverage(options)
(24354a4)page.coverage.startJSCoverage(options)
(d062381)page.coverage.stopCSSCoverage()
(24354a4)page.coverage.stopJSCoverage()
(d062381)target.createCDPSession()
(5368051)
Bug Fixes
- #31 - Expose raw protocol in the API
- #280 - API consistency: property getters vs methods
- #373 - Possibility for page numbers in PDF?
- #537 - Handle XPath selectors
- #754 - [Question] Frame html content
- #827 - frame.title() throws protocol error when used with framenavigated
- #872 - Add an API to override default launcher arguments
- #880 - INTERNAL ERROR: failed to find request for interception redirect
- #980 - Document cookie.session property
- #1201 - Preloading a Script
- #1231 - Docs: document page.once()
- #1350 - setCookie() doesn't work?
- #1363 - Intermittent TypeError: Cannot read property 'url' of undefined
- #1367 - Chromium process does not close if main nodejs process crashes
- #1373 - Page crash when HTTPS referer is set
- #1417 - page.waitForNavigation() timeout=0 does not disable timeout, but actually sets it to zero
- #1492 - page.screenshot.type not respected
- #1510 - page.evaluate incorrectly serializes undefined as null
- #1514 - Global timeout settings.
- #1516 - Clarify whether this uses Chrome or Chromium
- #1539 - Feature request: Give access to created processes
- #1557 - Example: search.js should demo something other than google.com
- #1578 - Demo: new search + scrape demo using protocol viewer
- #1579 - Attribute network requests to frames
- #1582 - (docs proposal) add example tool: headless-chrome-crawler
- #1627 - Docker installation instructions miss required library (libgconf-2.so.4)
- #1654 -
page.waitForFunction
should treat ElementHandle arguments as DOM elements - #1703 - .waitForFunction() should return a value
- #1705 - [Feature Request] Return All Nodes from XPath
- #1706 - Needs more information for
browser.version()
- #1724 - waitForFunction should accept and ElementHandle in page function arguments
- #1729 - page.goto returns a promise to null when intercepting request and modifying referer together
- #1737 - Commit #1712 breaks my scripts with 'UnhandledPromiseRejectionWarning'
- #1740 - Not support install form a mirror host that use 3xx http status code
Raw Notes
12b57e3 - chore: mark version v1.0.0 (#1786)
d68033a - chore(examples): indent all examples (#1783)
891a553 - docs(troubleshooting): add note on using ldd to find missing deps (#1780)
9b06ed2 - docs(README): updates to make d.g.c/web/ happy (#1773)
5368051 - feat: expose raw devtools protocol connection (#1770)
ec8e40f - feat(Page): Add global navigation timeout setting (#1728)
3985dee - docs(A...
v0.13.0
Big Changes
- Chromium 64.0.3264.0 (r515411)
browser.pages
can be used to access all pages in Chromium, even those created bywindow.open
. (32398d1)browser.close
now closes Chromium even if used withpupeteer.connect
(2b79514)
Api Changes
Changed:
PUPPETEER_DOWNLOAD_HOST
can be specified to overwrite host part of URL that is used to download Chromium (945a826)browser.close
now closes Chromium even if used withpupeteer.connect
(2b79514)waitUntil
optionpage.setRequestInterceptionEnabled
was renamed topage.setRequestInterception
(ce005d4)- Keyboard methods now accept both
code
andkey
strings (126ab7b) frame.waitForSelector
accepts optionhidden
(e3eec24)jsHandle.jsonValue
now ignorestoJSON
methods on objects (5c92ba2)request.abort
accepts an error code (4f64dfd)page.addStyleTag
andpage.addScriptTag
now return an ElementHandle for the tag that was added (e0f5b93)page.getMetrics
was renamed topage.metrics
(b9266c7)page.select
returns an array of all option values that were successfully selected (e70f98d)
Added:
event: 'targetchanged'
(32398d1)event: 'targetcreated'
(32398d1)event: 'targetdestroyed'
(32398d1)event: 'disconnected'
(32398d1)browser.disconnect
(03fefb5)browser.pages
(32398d1)browser.targets
(32398d1)elementHandle.$
(5ffbd0d)elementHandle.$$
(5ffbd0d)frame.select
(fede264)page.bringToFront
(77f5852)request.failure
(273c733)request.respond
(bcc969c)class: Target
(32398d1)
Bug Fixes
- #386 - Support anchor navigation
- #443 - Request: browser.currentPage() or similar way to access Pages
- #508 - Recursive
$/$ $ - #690 - Expose function doesn't add to frames the first time.
- #723 - Keyboard API is confusing
- #733 - Clip rectangles with odd-numbered height and width dimensions produce even-sized images.
- #805 - Waiting for both
load
andnetworkIdle
- #877 - Adopt plznavigate in puppeteer
- #894 - Page closes itself silently
- #901 - Provide reason for failed requests
- #918 - userDataDir + headless = browser and script (node) hang
- #946 - Provide 'DOMContentLoaded' option for waitUntil in page.goto()
- #951 - Add possibility to configure download mirror
- #955 - coverage script fail on windows
- #989 - No way to close a browser instance that was opened with connect()
- #1003 - Strange breaking change in page.evaluate()
- #1020 - Request Interception enhancements
- #1044 - LICENSE should be fixed
- #1061 - Error when clicking on Shadow DOM element
- #1082 - ElementHandle.click() broken in 0.12
- #1126 - Click doesn't work as expected in non-Headless
- #1139 - Missing ElementHandle.select; impossible (?) to make selection in a frame
- #1163 - Test "Puppeteer.launch should support ignoreHTTPSErrors option" is flaky
- #1173 - waitForNavigation should wait for all frames instead of only main frame
- #1179 - Add an option to set data attributes on elements added by the API
- #1195 - Test
Page.goto should fail when navigating to bad SSL
is flaky - #1218 -
page.goto
is littered with races - #1244 - Add page bringToFront method
- #1276 - page.select() should error if it can't find an option with requested value
- #1294 - Broken Click after upgrading to 0.12.0
- #1315 - elementHandle.screenshot clip object uses wrong y value
Raw Notes
b0b2219 fix(ElementHandle.screenshot): account for scroll (#1323)
2c8f658 fix(Navigation): wait for lifecycle events for the frame subtree (#1356)
f8d19e7 fix(Page.waitForSelector): "visible" option should check parent visibility (#1354)
44d1e83 fix(Navigation): correctly wait for navigation in Page.goto (#1355)
9b907b9 docs(api): javascript -> JavaScript (#1338)
9c1935b feat(Chromium): roll chromium to r515411 (#1346)
7075c4c docs(troubleshooting): fix typo (#1327)
7d18275 Test: add tests to cover clicking checkbox (#1125)
73f5b80 fix(install): support for npm no_proxy (#1314)
b7566c1 docs: document osx keyboard shortcuts not working (#1311)
cbe3dc5 Revert "feat(Page): teach Page.setContent to wait for resources to load (#1152)" (#1312)
b58d319 fix(Page.click): throw a meaningful message for invisible elements (#1309)
3cb0f1a fix: make exposeFunction work for frames (#1295)
8c9332b docs(Readme): add loading extensions example (#1308)
77f5852 feat(Page): introduce Page bringToFront method (#1252)
9de3449 Additional Docker tips (#1235)
a467d35 chore(doclint): do not attempt to lint non-documentation markdown
cc5e8a9 fix(Page.type): Add assertion to page.type() (#1301)
2f7c778 feat: roll chromium to r514418 (#1299)
8e44573 feat(Frame): reject error for addScriptTag/addStyleTag (#1287)
bdd5718 docs(examples): added pupperender (#1293)
5e154dc fix(Page.select): assert all values are of type "string". (#1280)
03fefb5 feat(browser): add browser.disconnected event (#960)
88ba52a refactor: use Page.getFrameTree instead of Page.getResourceTree (#1275)
7bc55ab docs(api.md): fix return values of page.add*Tag() (#1269)
e0f5b93 feat(Frame): addStyleTag and addScriptTag now return ElementHandles.
f08f334 test: validate headless reading cookies written by headful (#1266)
cee3081 docs(api.md): fix return value of frame.select() (#1251)
ac55e69 feat(Chromium): roll chromium to r513435. (#1259)
fede264 feat(Frame): introduce Frame.select
bc7f211 docs(contributing): define semantic commit message rules (#1233)
f5bb333 fix: support PlzNavigate in puppeteer. (#1239)
b9266c7 feat(Page): rename Page.getMetrics into Page.metrics (#1240)
9f071bf fix(Navigation): do not race with security error for navigation (#1237)
e70f98d feat(Page.select): return selected options from Page.select (#1099)
9f19641 chore: Fix typo in comment for Events (#1234)
0bb2157 Explain how to run examples (#1226)
c9a26e1 fix(ElementHandle): teach ElementHandle to work with shadowdom (#1227)
557aa94 chore(license): fix license (#1220)
6dec7cf typo in api.md (#1216)
23382df Adding simple guide to run puppeteer on Heroku (#1199)
3bf18f2 chore(examples): use news.google.com for block-images.js (#1192)
380bb6a docs: use debug namespace instead of all namespaces (#1174)
d9acf1e test: remove irrelevant test (#1172)
e11dbd7 docs: add more keyboard examples for typing (#1176)
f9b017e chore(examples): update search example (#1181)
5ffbd0d feat(ElementHandle): add ElementHandle.$ and ElementHandle.$$ (#1151)
9e39f5f docs(troubleshooting): Add new buildpack url that adds additional fonts (#1161)
655b94d fix(touch): requestAnimationFrame before sending tap (#1142)
d1f044e test: disable ignoreHTTPSErrors test (#1164)
ab9b34c fix(Launcher): force-kill chrome on process exit and interruption (#1155)
b9ab6fe fix(interception): Disable newtork caching when intercepting (#1154)
ce005d4 feat(Chromium): Roll chromium to r511134 (#1153)
80ee469 feat(Page): teach Page.setContent to wait for resources to load (#1152)
f38c8bb feat(Page.goto): support multiple events in waitUntil option (#1147)
ef369e5 feat(Page.goto): add a 'domcontentloaded' option to the Page.goto (#1145)
ce8a952 refactor: migrate NavigatorWatcher to lifecycle events (#1141)
126ab7b feat(keyboard): Accept codes (#1116)
945a826 feat(install): add environment variable to overwrite ...