***
title: Puppeteer Page
description: Complete Page method reference for the Puppeteer driver.
---------------------------------------------------------------------
All `Page` methods available when using the **Puppeteer** driver.
Access via `runtime.page` after launching a Puppeteer runtime.
Every method below is a remote call. The SDK translates it into a structured step sent to a single endpoint:
```
POST /v1/workspaces/{workspaceId}/execute
```
```json
{
"runtime": "my-browser",
"steps": [
{
"call": "page.goto",
"args": ["https://example.com"]
}
]
}
```
The `call` field maps directly to the method name. `args` is a JSON array of the method's arguments. You can batch multiple steps in one request.
## Navigation
### goto(url, options?)
Navigate to a URL.
```ts
await runtime.page.goto('...');
```
| Parameter | Type | Required | Description |
| --------- | ---------------------- | -------- | ----------- |
| `url` | `string` | Yes | — |
| `options` | `PuppeteerGotoOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
— The main resource response, or null if navigating to about:blank.
[Upstream docs](https://pptr.dev/api/puppeteer.page.goto)
***
### reload(options?)
Reload the page.
```ts
await runtime.page.reload();
```
| Parameter | Type | Required | Description |
| --------- | ------------------------ | -------- | ----------- |
| `options` | `PuppeteerReloadOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.page.reload)
***
### goBack(options?)
Navigate back in history.
```ts
await runtime.page.goBack();
```
| Parameter | Type | Required | Description |
| --------- | ----------------------------------- | -------- | ----------- |
| `options` | `PuppeteerWaitForNavigationOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.page.goback)
***
### goForward(options?)
Navigate forward in history.
```ts
await runtime.page.goForward();
```
| Parameter | Type | Required | Description |
| --------- | ----------------------------------- | -------- | ----------- |
| `options` | `PuppeteerWaitForNavigationOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.page.goforward)
***
### waitForNavigation(options?)
Wait for navigation to complete.
```ts
await runtime.page.waitForNavigation();
```
| Parameter | Type | Required | Description |
| --------- | ----------------------------------- | -------- | ----------- |
| `options` | `PuppeteerWaitForNavigationOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.page.waitfornavigation)
***
## Page Info
### title()
Get the page title.
```ts
await runtime.page.title();
```
**Returns** `string`
[Upstream docs](https://pptr.dev/api/puppeteer.page.title)
***
### url()
Get the current URL.
```ts
await runtime.page.url();
```
**Returns** `string`
[Upstream docs](https://pptr.dev/api/puppeteer.page.url)
***
### content()
Get the full HTML content.
```ts
await runtime.page.content();
```
**Returns** `string`
[Upstream docs](https://pptr.dev/api/puppeteer.page.content)
***
### setContent(html, options?)
Set the page content.
```ts
await runtime.page.setContent('...');
```
| Parameter | Type | Required | Description |
| --------- | ------------------------------------------ | -------- | ----------- |
| `html` | `string` | Yes | — |
| `options` | `{ timeout?: number; waitUntil?: string }` | No | — |
[Upstream docs](https://pptr.dev/api/puppeteer.page.setcontent)
***
### setViewport(viewport)
Set the viewport size. Pass null to reset to default.
```ts
await runtime.page.setViewport(/* viewport */);
```
| Parameter | Type | Required | Description |
| ---------- | --------------------------- | -------- | ----------- |
| `viewport` | `PuppeteerViewport \| null` | Yes | — |
[Upstream docs](https://pptr.dev/api/puppeteer.page.setviewport)
***
### viewport()
Get the current viewport.
```ts
await runtime.page.viewport();
```
**Returns** `PuppeteerViewport \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.page.viewport)
***
## Actions
### click(selector, options?)
Click on an element matching the selector.
```ts
await runtime.page.click('...');
```
| Parameter | Type | Required | Description |
| ---------- | ----------------------- | -------- | ----------- |
| `selector` | `string` | Yes | — |
| `options` | `PuppeteerClickOptions` | No | — |
[Upstream docs](https://pptr.dev/api/puppeteer.page.click)
***
### type(selector, text, options?)
Type text into an element.
```ts
await runtime.page.type('...', '...');
```
| Parameter | Type | Required | Description |
| ---------- | ------------------------------ | -------- | ----------- |
| `selector` | `string` | Yes | — |
| `text` | `string` | Yes | — |
| `options` | `PuppeteerKeyboardTypeOptions` | No | — |
[Upstream docs](https://pptr.dev/api/puppeteer.page.type)
***
### focus(selector)
Focus on an element.
```ts
await runtime.page.focus('...');
```
| Parameter | Type | Required | Description |
| ---------- | -------- | -------- | ----------- |
| `selector` | `string` | Yes | — |
[Upstream docs](https://pptr.dev/api/puppeteer.page.focus)
***
### hover(selector)
Hover over an element.
```ts
await runtime.page.hover('...');
```
| Parameter | Type | Required | Description |
| ---------- | -------- | -------- | ----------- |
| `selector` | `string` | Yes | — |
[Upstream docs](https://pptr.dev/api/puppeteer.page.hover)
***
### select(selector, ...values)
Select options in a \