This example demonstrates how to use Playwright with Chromium and Firefox on a Heroku environment.
The setup is based on using the Playwright Heroku Buildpack which installs the necessary dependencies and adjusts the needed Playwright specific settings. It's required to run this before using the NodeJS Buildpack, because otherwise the NPM dependencies won't be installed correctly.
In this minimal setup, we are using an Express web server, which accepts requests with the browser name and the URL as parameters. This demonstrates, that the setup works during the normal Dyno runtime. For a full reference, you can find the HTTP handler in the src/index.js
file. It's important to run Chromium with the chromiumSandbox: false
flag, because Heroku has no usable sandbox functionality on their containers.
To see a live demonstration, you can checkout heroku.playwright.tech or make requests to these URLs to see that a browser is launched, the specified URL is opened and a screenshot is taken and delivered to the user:
- Chromium: heroku.playwright.tech/browser/chromium?url=https://microsoft.com
- Firefox: heroku.playwright.tech/browser/firefox?url=https://github.com
It's common to only install the browser-specific NPM packages, which will reduce installation time and slug size on Heroku in the end, that should fix also the error that the slug size is too large.