# goto

The `goto` step.

Navigates the top frame to a URL, given as a template string or an object. It then waits for the page to settle (500 ms of network quiet, at most 10 s); lint warns `W001` without an `expect`.

Type: `string or object`

## Keys

| Key | Type | Description |
|---|---|---|
| `goto.referer` | `string` | The `Referer` header to send with the navigation, a template. |
| `goto.url` | `string` | The URL to open, a template. A secret input rendered into it is lint `E013`. |
| `goto.wait_until` | `"load" \| "domcontentloaded" \| "networkidle" \| "commit"` | Which page event ends the navigation: `load` (the default), `domcontentloaded`, `networkidle` or `commit`. |

Every step also takes the [common step keys](https://docs.kaab.ist/reference/dsl/steps#common-keys): `expect`, `id`, `if`, `name`, `on_error`, `optional`, `retry`, `side_effect`, `timeout_ms`, `x_kaab`.

## Example

```json
{
  "goto": "https://shop.example.com/c/shoes"
}
```

From the contract fixture `capture-response`, a program the test suite validates.
