---
id: api/commands/check
title: check | Cypress Documentation
description: Check checkbox(es) or radio(s) in Cypress.
section: api
source_path: docs/api/commands/check.mdx
version: 3cf5b86b3403f604bdf7f3e35025c3bc3865e02c
updated_at: '2026-05-07T17:44:31.931Z'
---
# check

Check checkbox(es) or radio(s).

It is [unsafe](/llm/markdown/app/core-concepts/retry-ability.md#Only-queries-are-retried) to chain further commands that rely on the subject after `.check()`.

This element must be an `<input>` with type `checkbox` or `radio`.

## Syntax

```
.check().check(value).check(values).check(options).check(value, options).check(values, options)
```

### Usage

**Correct Usage**

```
cy.get('[type="checkbox"]').check() // Check checkbox elementcy.get('[type="radio"]').first().check() // Check first radio element
```

**Incorrect Usage**

```
cy.check('[type="checkbox"]') // Errors, cannot be chained off 'cy'cy.get('p:first').check() // Errors, '.get()' does not yield checkbox or radio
```

### Arguments

**value _(String)_**

Value of checkbox or radio that should be checked.

**values _(Array)_**

Values of checkboxes or radios that should be checked.

**options _(Object)_**

Pass in an options object to change the default behavior of `.check()`.

| Option | Default | Description |
| --- | --- | --- |
| `animationDistanceThreshold` | [`animationDistanceThreshold`](/llm/markdown/app/references/configuration.md#Actionability) | The distance in pixels an element must exceed over time to be [considered animating](/llm/markdown/app/core-concepts/interacting-with-elements.md#Animations). |
| `log` | `true` | Displays the command in the [Command log](/llm/markdown/app/core-concepts/open-mode.md#Command-Log) |
| `force` | `false` | Forces the action, disables [waiting for actionability](#Assertions) |
| `scrollBehavior` | [`scrollBehavior`](/llm/markdown/app/references/configuration.md#Actionability) | Viewport position to where an element [should be scrolled](/llm/markdown/app/core-concepts/interacting-with-elements.md#Scrolling) before executing the command |
| `timeout` | [`defaultCommandTimeout`](/llm/markdown/app/references/configuration.md#Timeouts) | Time to wait for `.check()` to resolve before [timing out](#Timeouts) |
| `waitForAnimations` | [`waitForAnimations`](/llm/markdown/app/references/configuration.md#Actionability) | Whether to wait for elements to [finish animating](/llm/markdown/app/core-concepts/interacting-with-elements.md#Animations) before executing the command. |

### Yields [Learn about subject management](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Subject-Management)

*   `.check()` yields the same subject it was given.
*   It is [unsafe](/llm/markdown/app/core-concepts/retry-ability.md#Only-queries-are-retried) to chain further commands that rely on the subject after `.check()`.

## Examples

### No Args

#### Check all checkboxes

```
cy.get('[type="checkbox"]').check()
```

#### Select all radios

```
cy.get('[type="radio"]').check()
```

#### Check the element with id of 'saveUserName'

```
cy.get('#saveUserName').check()
```

### Value

#### Select the radio with the value of 'US'

```
<form>  <input type="radio" id="ca-country" value="CA" />  <label for="ca-country">Canada</label>  <input type="radio" id="us-country" value="US" />  <label for="us-country">United States</label></form>
```

```
cy.get('[type="radio"]').check('US')
```

### Values

#### Check the checkboxes with the values 'subscribe' and 'accept'

```
<form>  <input type="checkbox" id="subscribe" value="subscribe" />  <label for="subscribe">Subscribe to newsletter?</label>  <input type="checkbox" id="acceptTerms" value="accept" />  <label for="acceptTerms">Accept terms and conditions.</label></form>
```

```
cy.get('form input').check(['subscribe', 'accept'])
```

### Options

#### Check an invisible checkbox

You can ignore Cypress' default behavior of checking that the element is visible, clickable and not disabled by setting `force` to `true` in the options.

```
cy.get('.action-checkboxes')  .should('not.be.visible') // Passes  .check({ force: true })  .should('be.checked') // Passes
```

### Find checked option

You can get the currently checked option using the jQuery's [:checked selector](https://api.jquery.com/checked-selector/).

```
<form id="pick-fruit">  <input type="radio" name="fruit" value="orange" id="orange" />  <input type="radio" name="fruit" value="apple" id="apple" checked="checked" />  <input type="radio" name="fruit" value="banana" id="banana" /></form>
```

```
cy.get('#pick-fruit :checked').should('be.checked').and('have.value', 'apple')
```

## Notes

### Actionability

#### The element must first reach actionability

`.check()` is an "action command" that follows all the rules of [Actionability](/llm/markdown/app/core-concepts/interacting-with-elements.md).

## Rules

### Requirements [Learn about chaining commands](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Chains-of-Commands)

*   `.check()` requires being chained off a command that yields DOM element(s).
*   `.check()` requires the element to have type `checkbox` or `radio`.

### Assertions [Learn about assertions](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Assertions)

*   `.check()` will automatically wait for the element to reach an [actionable state](/llm/markdown/app/core-concepts/interacting-with-elements.md).
*   `.check()` will automatically [retry](/llm/markdown/app/core-concepts/retry-ability.md) until all chained assertions have passed.

### Timeouts [Learn about timeouts](/llm/markdown/app/core-concepts/introduction-to-cypress.md#Timeouts)

*   `.check()` can time out waiting for the element to reach an [actionable state](/llm/markdown/app/core-concepts/interacting-with-elements.md).
*   `.check()` can time out waiting for assertions you've added to pass.

## Command Log

**_check the element with name of 'emailUser'_**

```
cy.get('form').find('[name="emailUser"]').check()
```

The commands above will display in the Command Log as:

When clicking on `check` within the command log, the console outputs the following:

## See also

*   [`.click()`](/llm/markdown/api/commands/click.md)
*   [`.uncheck()`](/llm/markdown/api/commands/uncheck.md)
