Skip to content

Commit 261fde1

Browse files
authored
Create 2025-09-25-br-playwright-ga-stagehand-limits.mdx
1 parent 7b4b82d commit 261fde1

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: Browser Rendering Playwright GA, Stagehand support (Beta), and higher limits
3+
description: Browser Rendering birthday week announcements
4+
products:
5+
- browser-rendering
6+
date: 2025-09-25T12:00:00Z
7+
---
8+
9+
We’re shipping three updates to Browser Rendering.
10+
- Playwright support is **now Generally Available** and synced with [Playwright v1.55](https://playwright.dev/docs/release-notes#version-155), giving you a stable foundation for critical automation and AI-agent workflows.
11+
- We’re also adding [Stagehand support (Beta)](/browser-rendering/platform/stagehand/) so you can combine code with natural language instructions to build more resilient automations.
12+
- Finally, we’ve tripled [limits](/browser-rendering/platform/limits/#workers-paid) for paid plans across both the [REST API](https://developers.cloudflare.com/browser-rendering/rest-api/) and [Workers Bindings](https://developers.cloudflare.com/browser-rendering/workers-bindings/) to help you scale.
13+
14+
To get started with Stagehand, check out this [example guide](/browser-rendering/platform/stagehand) that uses Stagehand and [Workers AI](/workers-ai) to search for a movie on [The Movie Database](https://www.themoviedb.org/), extract its details using natural language (title, year, rating, duration, and genre), and return the information along with a screenshot of the webpage.
15+
16+
```ts title="stagehand example"
17+
const stagehand = new Stagehand({
18+
env: "LOCAL",
19+
localBrowserLaunchOptions: { cdpUrl: endpointURLString(env.BROWSER) },
20+
llmClient: new new WorkersAIClient(env.AI),
21+
verbose: 1,
22+
});
23+
24+
await stagehand.init();
25+
const page = stagehand.page;
26+
27+
await page.goto('https://demo.playwright.dev/movies');
28+
29+
// if search is a multi-step action, stagehand will return an array of actions it needs to act on
30+
const actions = await page.observe('Search for "Furiosa"');
31+
for (const action of actions)
32+
await page.act(action);
33+
34+
await page.act('Click the search result');
35+
36+
// normal playwright functions work as expected
37+
await page.waitForSelector('.info-wrapper .cast');
38+
39+
let movieInfo = await page.extract({
40+
instruction: 'Extract movie information',
41+
schema: z.object({
42+
title: z.string(),
43+
year: z.number(),
44+
rating: z.number(),
45+
genres: z.array(z.string()),
46+
duration: z.number().describe("Duration in minutes"),
47+
}),
48+
});
49+
50+
await stagehand.close();
51+
```
52+
53+
![Stagehand video](~/assets/images/browser-rendering/stagehand.mov)

0 commit comments

Comments
 (0)