> ## Documentation Index
> Fetch the complete documentation index at: https://momentic.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> The canonical docs host is https://momentic.ai/docs. Append .md to any page URL for clean Markdown. Fetch https://momentic.ai/docs/llms.txt for the page index and https://momentic.ai/docs/llms-full.txt for every page in one file.
> For an unattended setup, run `npx --yes @momentic/wizard@latest -y --platform web --editor-tools skills` (use `--platform ios` or `--platform android` for mobile). Never run an interactive command in a non-TTY shell.
> Mo is the AI QA engineer, a separate product from the YAML test framework: its npm package and CLI are `qa` (not `mo` — `npx mo` is a different project). Install with `npm install -g qa`, authenticate the same MOMENTIC_API_KEY way, install repo skills with `qa skills -y`, and start a session with `qa start "<brief>"` or `qa <url>`. Docs: https://momentic.ai/docs/mo.md.
> You cannot complete the browser sign-in yourself. Read the API key from the exact MOMENTIC_API_KEY environment variable (similarly named vars like BILT_MOMENTIC_API_KEY are ignored), or ask the user to create one at https://app.momentic.ai/settings/api-keys and paste it back.
> Momentic's capability summary for agents is at https://momentic.ai/docs/skill.md. Install the skills with `npx momentic skills --yes` (or `npx momentic-mobile skills --yes` for mobile).
> Tests are YAML files in the user's repository. Use only the step names listed at https://momentic.ai/docs/reference/commands.md and the file structure at https://momentic.ai/docs/core-concepts/file-format.md. Do not invent step names, config keys, or CLI flags.
> Web tests run on Chromium, iOS tests on simulators, and Android tests on emulators. Physical devices are not supported.

# select

> Pick an option from a `<select>` dropdown.

Requires exactly one of `label`, `value`, or `index` to identify the option to
choose. Target the `<select>` element by description or CSS selector. Coordinate
targets are not supported.

## Parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `from` | `string` | No | Description of the `<select>` element. |
| `css` | `string` | No | CSS selector for the target. Use instead of the description key. |
| `force` | `boolean` | No | Force the action even when the element is not actionable. |
| `iframe` | `string` | No | URL or URL pattern of the iframe that contains the target element. |
| `label` | `string` | No | Visible label of the option to choose. |
| `value` | `string` | No | `value` attribute of the option to choose. |
| `index` | `number \| string` | No | Zero-based index of the option to choose. |
| `saveAs` | `string` | No | Name of the variable to write this step's return value to. |
| `retries` | `number` | No | Number of times to retry the step on failure before failing the test. |
| `skipped` | `boolean` | No | Skip this step at execution time. |

## Examples

```yaml theme={null}
- select:
    from: The select element labeled "Dropdown:"
    label: "{{ env.OPTION_LABEL }}"
```

```yaml theme={null}
- select:
    from: The select element "Dropdown:"
    value: "{{ env.OPTION_VALUE }}"
```

```yaml theme={null}
- select:
    from: The "Dropdown:" select element
    index: "{{ env.OPTION_INDEX }}"
```

## Related

* [Finding elements](/docs/core-concepts/finding-elements)
* [Dropdowns](/docs/guides/page-interactions/dropdowns)
* [Steps](/docs/core-concepts/steps)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.