Playwright is a Node.js library which provides a high-level API to control Chrome/Chromium over the DevTools Protocol. Playwright runs in headless mode on Chromium on Pipedream.
Using Playwright you can perform tasks including:
import { playwright } from '@pipedream/browsers';
export default defineComponent({
async run({steps, $}) {
const browser = await playwright.launch();
// Interact with the web page programmatically
// See Playwright's Page documentation for available methods:
// https://playwright.dev/docs/api/class-page
const page = await browser.newPage();
await page.goto('https://pipedream.com/');
const title = await page.title();
const content = await page.content();
// Close context and browser otherwise the step will hang
await page.context().close()
await browser.close();
return { title, content }
},
})
No authentication is required to use Playwright in your Pipedream workflows. Pipedream publishes a specific NPM package that is compatible with the Pipedream Execution Environment. This package includes the headless Chromium binary needed to run a browser headlessly within your Pipedream workflows.
Simply import this package, launch a browser and navigate using a Playwright Page instance.
To get started, import the @pipedream/browsers
package into your Node.js code step. Pipedream will automatically install this specialized package that bundles the dependencies needed to run playwright
in your code step.
This package exports a playwright
module that exposes these methods:
browser(opts?)
- method to instantiate a new browser (returns a Playwright Browser instance)launch(opts?)
- an alias to browser()newPage()
- creates a new Playwright Page instance and returns both the page & browserNote: After awaiting the browser instance, make sure to close the browser at the end of your Node.js code step.
import { playwright } from '@pipedream/browsers';
export default defineComponent({
async run({steps, $}) {
const browser = await playwright.browser();
console.log(browser)
// get page, perform actions, etc.
await browser.close();
},
})
The same @pipedream/browsers
package can be used in actions as well as sources.
The steps are the same as usage in Node.js code. Open a browser, create a page, and close the browser at the end of the code step.
Please note: At this time Source's memory are not configurable and are fixed to 256 mb. This is below the recommened 2 gbs for usage in workflows.
Generates a pdf of the page and store it on /tmp directory. See the documentation
Store a new screenshot file on /tmp directory. See the documentation
Remember to close the browser instance before the step finishes. Otherwise, the browser will keep the step "open" and not transfer control to the next step.
For best results, we recommend increasing the amount of memory available to your workflow to 2 gigabytes. You can adjust the available memory in the workflow settings.