Deprecation notice: We are moving our efforts to theheadless.dev, a new free & open source knowledge base for Puppeteer AND Playwright. Idea is the same: practical examples and guides, by the community. We — the team at Checkly — are going to pour a lot of love & care into this new project. Feel free to contribute!
Puppeteer Headless Chrome examples for real life use cases. Clone this repo and run them directy with a simple node
command.
git clone https://github.com/checkly/puppeteer-examples
cd puppeteer-examples
npm i
node 2.\ search/amazon.js
You can run these scripts in the puppeteer sandbox.
The very basic on getting useful info from web page. Highlights the basic Puppeteer functions.
Create an alert dialog and close it again.
Find an image by class selector, downloads the image, saves it to disk and read it again. Use this together with a .fileUpload() method.
Use the built in devices descriptors to emulate an Iphone 6. These are actually shortcuts for calling page.setUserAgent() and page.setViewPort().
Gets the value of commonly used HTML form elements using page.$eval()
Scrapes Hacker News for links on the home page and returns the top 10
1. basics/get_list_of_links.js
Gets the text value of an element by using the page.$eval method
Get the title of a page and print it to the console.
The hover function is a combination of scrolling and putting the mouse into a hover state over the requested element. This example hovers the first track we find on the soundcloud.com homepage, which should trigger the play and like buttons to be visible
types into a text editor
Fake the location for the geolocation API used by the browsers
Most of the things you can click using straight .click() handlers, but for some situation directly instructing the mouse might be convenient. This example load a page that plays back what mouse actions are used on the page.
Renders a PDF of the Puppeteer API spec. This is a pretty long page and will generate a nice, A4 size multi-page PDF.
Uses Puppeteer request interception, blocks images from loading, then snaps a basic screenshot of the full New York Time homepage and saves it a .png file.
1. basics/request_interception.js
Snaps a basic screenshot of the full New York Time homepage and saves it a .png file.
Grabs and clips out just the stock tickers on the Yahoo finance page
1. basics/screenshots_clipped.js
Sets the "login_email" property in a Paypal cookie so the login screen is pre-filled with an email address.
Common search input and select methods on search results.
Looks for a "nyan cat pullover" on amazon.com, goes two page two clicks the third one.
Finds accommodations in Berlin on Booking.com, takes a screenshot and logs the top 10.
undefined
Looks for Fleetwood Mac's "Dreams" video on youtube.com and clicks on the third video. Waits for 5 seconds for the video to load.
Common login scenarios on popular website. Credentials mostly supplied with setting ENV
variables.
Logs into Github. Provide your username and password as environment variables when running the script, i.e: GITHUB_USER=myuser GITHUB_PWD=mypassword node github.js
Logs into Checkly using Google social Login. Provide your username and password as environment variables when running the script, i.e: GOOGLE_USER=myuser GOOGLE_PWD=mypassword node google_social.js
Logs into Instagram with credentials. Provide your username and password as environment variables when running the script, i.e: INSTAGRAM_USER=myuser INSTAGRAM_PWD=mypassword node instagram.js
Logs into MS Live. Provide your username and password as environment variables when running the script, i.e: linux: MSLIVE_USER=myuser MSLIVE_PWD=mypassword node mslive.js Windows users: SET MSLIVE_USER=myuser SET MSLIVE_PWD=mypassword node mslive.js for more info see here: https://stackoverflow.com/questions/9249830/how-can-i-set-node-env-production-on-windows
How to handle shopping cart functions like adding and removing items.
Goes to the face paint category and adds to the shopping cart.
Looks for a Nintendo's Mario Odyssey and adds it to the shopping cart.
How to handle Allow parallel processing pages.
Allow parallel processing screenshot
5. parallel-pages/screenshots_parallel.js
parallel screenshotting of an array of Websites with small example
5. parallel-pages/screenshots_parallel_cologne_colleges.js
Mocha test runner scripts that use Puppeteer and the standard assert
library to check specific properties and actions on a page. They can be executed like:
cd "a. mocha-tests"
npx mocha alibaba.js
Searches Alibaba.com for a product and checks if the results show up
Searches Amazon.com for a product and checks if the results show up
Goes to codesandbox.io, creates a new sandbox and selects the Vue.js template
Goes to duckduckgo.com, searches for "chrome puppeteer", asserts the result and snaps a screenshots
a. mocha-tests/duck_duck_go.js
Goes to etsy.com, select the first knick knack and adds it to the shopping cart.
Checks the signup flow from the landing page. Clicks the
Searches Google.com for a term and checks if the first link matches. This check should fail.
Goes to staples.com and adds a some facepaint to an empty shopping cart. Validates the correct amount.
Goes to walmart.com and adds a Nintendo game to an empty shopping cart. Validates the correct amount.
Jest test runner scripts that use Puppeteer to check specific properties and actions on a page. Very similar to the Mocha tests, but using the Jest expect
assertions. Install Jest as a global dependency and run them as any other script
npm i -g jest
jest jest-tests/alibaba.js
Searches Alibaba.com for a product and checks if the results show up
Searches Amazon.com for a product and checks if the results show up
Goes to codesandbox.io, creates a new sandbox and selects the Vue.js template
b. jest-tests/codesandbox.spec.js
Goes to etsy.com, select the first knick knack and adds it to the shopping cart.
Searches Google.com for a term and checks if the first link matches. This check should fail.
Goes to walmart.com and adds a Nintendo game to an empty shopping cart. Validates the correct amount.