***
title: Puppeteer Frame
description: Complete Frame method reference for the Puppeteer driver.
----------------------------------------------------------------------
All `Frame` methods available when using the **Puppeteer** driver.
Access via `frame` 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": "frame.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 the frame to a URL.
```ts
await frame.goto('...');
```
| Parameter | Type | Required | Description |
| --------- | ---------------------- | -------- | ----------- |
| `url` | `string` | Yes | — |
| `options` | `PuppeteerGotoOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.frame.goto)
***
### waitForNavigation(options?)
Wait for navigation to complete.
```ts
await frame.waitForNavigation();
```
| Parameter | Type | Required | Description |
| --------- | ----------------------------------- | -------- | ----------- |
| `options` | `PuppeteerWaitForNavigationOptions` | No | — |
**Returns** `PuppeteerHTTPResponse \| null`
[Upstream docs](https://pptr.dev/api/puppeteer.frame.waitfornavigation)
***
## Page Info
### url()
The frame's URL.
```ts
await frame.url();
```
**Returns** `string`
[Upstream docs](https://pptr.dev/api/puppeteer.frame.url)
***
### title()
The frame's title.
```ts
await frame.title();
```
**Returns** `string`
[Upstream docs](https://pptr.dev/api/puppeteer.frame.title)
***
### content()
The full HTML contents of the frame.
```ts
await frame.content();
```
**Returns** `string`
[Upstream docs](https://pptr.dev/api/puppeteer.frame.content)
***
### setContent(html, options?)
Set the content of the frame.
```ts
await frame.setContent('...');
```
| Parameter | Type | Required | Description |
| --------- | ------------------------------------------ | -------- | ----------- |
| `html` | `string` | Yes | — |
| `options` | `{ timeout?: number; waitUntil?: string }` | No | — |
[Upstream docs](https://pptr.dev/api/puppeteer.frame.setcontent)
***
## Actions
### click(selector, options?)
Click on an element.
```ts
await frame.click('...');
```
| Parameter | Type | Required | Description |
| ---------- | ----------------------- | -------- | ----------- |
| `selector` | `string` | Yes | — |
| `options` | `PuppeteerClickOptions` | No | — |
[Upstream docs](https://pptr.dev/api/puppeteer.frame.click)
***
### type(selector, text, options?)
Type text into an element.
```ts
await frame.type('...', '...');
```
| Parameter | Type | Required | Description |
| ---------- | ------------------------------ | -------- | ----------- |
| `selector` | `string` | Yes | — |
| `text` | `string` | Yes | — |
| `options` | `PuppeteerKeyboardTypeOptions` | No | — |
[Upstream docs](https://pptr.dev/api/puppeteer.frame.type)
***
### focus(selector)
Focus on an element.
```ts
await frame.focus('...');
```
| Parameter | Type | Required | Description |
| ---------- | -------- | -------- | ----------- |
| `selector` | `string` | Yes | — |
[Upstream docs](https://pptr.dev/api/puppeteer.frame.focus)
***
### hover(selector)
Hover over an element.
```ts
await frame.hover('...');
```
| Parameter | Type | Required | Description |
| ---------- | -------- | -------- | ----------- |
| `selector` | `string` | Yes | — |
[Upstream docs](https://pptr.dev/api/puppeteer.frame.hover)
***
### select(selector, ...values)
Select options in a \